diff --git a/dbrepo-analyse-service/lib/dbrepo-1.4.4-py3-none-any.whl b/dbrepo-analyse-service/lib/dbrepo-1.4.4-py3-none-any.whl index e38e1ef73a34a89a38ed9fef78bae18f24696b39..4acaa2f242aa1a17081c6b649879afacfa191dad 100644 Binary files a/dbrepo-analyse-service/lib/dbrepo-1.4.4-py3-none-any.whl and b/dbrepo-analyse-service/lib/dbrepo-1.4.4-py3-none-any.whl differ diff --git a/dbrepo-analyse-service/lib/dbrepo-1.4.4.tar.gz b/dbrepo-analyse-service/lib/dbrepo-1.4.4.tar.gz index 13e777fc80d58a5528ae0aadb1b406895ca143e0..e0bdb5adee8536ec4455e215913a6a769237b1e9 100644 Binary files a/dbrepo-analyse-service/lib/dbrepo-1.4.4.tar.gz and b/dbrepo-analyse-service/lib/dbrepo-1.4.4.tar.gz differ diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java index d1b033fe5bf3bb237adc09f6ab541f3260cc11b1..8820cd294aab3544d26a691486de083cef4cec21 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java @@ -226,9 +226,14 @@ public interface MariaDbMapper { /* null expressions */ .append(column.getNullAllowed() != null && column.getNullAllowed() ? " NULL" : " NOT NULL") /* default expressions */ - .append(data.getNeedSequence() && column.getName().equals("id") ? " DEFAULT NEXTVAL(`" + tableCreateDtoToSequenceName(data) + "`)" : "") - /* comments */ - .append(!column.getDescription().isEmpty() ? (" COMMENT \"" + column.getDescription() + "\"") : ""); + .append(data.getNeedSequence() && column.getName().equals("id") ? " DEFAULT NEXTVAL(`" + tableCreateDtoToSequenceName(data) + "`)" : ""); + if (column.getDescription() != null && !column.getDescription().isEmpty()) { + /* comments */ + stringBuilder.append(" COMMENT \"") + .append(column.getDescription()) + .append("\""); + } + } /* create primary key index */ stringBuilder.append(", PRIMARY KEY (") diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ImportCsvDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ImportCsvDto.java index 422b20527f8c0ddb98eefc646d19753f370c0c43..eac536143e1b59efce8617f740334acc74b77f5a 100644 --- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ImportCsvDto.java +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ImportCsvDto.java @@ -18,7 +18,7 @@ import lombok.extern.jackson.Jacksonized; @ToString public class ImportCsvDto { - @NotBlank(message = "location is required") + @NotBlank @Schema(example = "file.csv") private String location; diff --git a/dbrepo-search-service/lib/dbrepo-1.4.4-py3-none-any.whl b/dbrepo-search-service/lib/dbrepo-1.4.4-py3-none-any.whl index e38e1ef73a34a89a38ed9fef78bae18f24696b39..4acaa2f242aa1a17081c6b649879afacfa191dad 100644 Binary files a/dbrepo-search-service/lib/dbrepo-1.4.4-py3-none-any.whl and b/dbrepo-search-service/lib/dbrepo-1.4.4-py3-none-any.whl differ diff --git a/dbrepo-search-service/lib/dbrepo-1.4.4.tar.gz b/dbrepo-search-service/lib/dbrepo-1.4.4.tar.gz index 13e777fc80d58a5528ae0aadb1b406895ca143e0..e0bdb5adee8536ec4455e215913a6a769237b1e9 100644 Binary files a/dbrepo-search-service/lib/dbrepo-1.4.4.tar.gz and b/dbrepo-search-service/lib/dbrepo-1.4.4.tar.gz differ diff --git a/lib/python/Makefile b/lib/python/Makefile index f8f7215b3839eba5dd547603bb1725fa08f9156b..31371ee1da71daa24e663344df62a860e674c04e 100644 --- a/lib/python/Makefile +++ b/lib/python/Makefile @@ -1,4 +1,4 @@ -all: +all: build clean: rm -rf ./python/dist/* ./docs/build/* ./dist/* diff --git a/lib/python/dbrepo/RestClient.py b/lib/python/dbrepo/RestClient.py index e864cc411deb03cb4bf1ab0be9b329d186bcfe42..453a7d4315439b60e00638273291175f38f15e63 100644 --- a/lib/python/dbrepo/RestClient.py +++ b/lib/python/dbrepo/RestClient.py @@ -61,14 +61,13 @@ class RestClient: if headers is not None: logging.debug(f'headers: {headers}') if payload is not None: - logging.debug(f'payload: {payload}') - payload = payload.model_dump_json() + logging.debug(f'payload: {payload.model_dump()}') if self.username is not None and self.password is not None: logging.debug(f'username: {self.username}, password: (hidden)') return requests.request(method=method, url=url, auth=(self.username, self.password), verify=self.secure, - json=payload, headers=headers, params=params, stream=stream) - return requests.request(method=method, url=url, verify=self.secure, json=payload, headers=headers, - params=params, stream=stream) + json=payload.model_dump(), headers=headers, params=params, stream=stream) + return requests.request(method=method, url=url, verify=self.secure, json=payload.model_dump(), + headers=headers, params=params, stream=stream) def upload(self, file_path: str) -> str: """ @@ -767,9 +766,9 @@ class RestClient: f'Failed to insert table data: response code: {response.status_code} is not 202 (ACCEPTED)') def import_table_data(self, database_id: int, table_id: int, separator: str, file_path: str, - quote: str = None, skip_lines: int = None, false_encoding: str = None, + quote: str = None, skip_lines: int = 0, false_encoding: str = None, true_encoding: str = None, null_encoding: str = None, - line_encoding: str = None) -> None: + line_encoding: str = "\r\n") -> None: """ Import a csv dataset from a file into a table in a database with given database id and table id. @@ -778,10 +777,10 @@ class RestClient: :param separator: The csv column separator. :param file_path: The path of the file that is imported on the storage service. :param quote: The column data quotation character. Optional. - :param skip_lines: The number of lines to skip. Optional. + :param skip_lines: The number of lines to skip. Optional. Default: 0. :param false_encoding: The encoding of boolean false. Optional. :param true_encoding: The encoding of boolean true. Optional. - :param null_encoding: The encoding of null. Optional. Default: empty string "". + :param null_encoding: The encoding of null. Optional. :param line_encoding: The encoding of the line termination. Optional. Default: CR (Windows). :raises ResponseCodeError: If something went wrong with the insert. diff --git a/lib/python/dbrepo/api/dto.py b/lib/python/dbrepo/api/dto.py index 27256c63985dbf1801612cef461cb6a4541b8030..0a27cb664d7e4b5c1f4ed71dfa64328d2f52dcf8 100644 --- a/lib/python/dbrepo/api/dto.py +++ b/lib/python/dbrepo/api/dto.py @@ -499,7 +499,6 @@ class CreateTable(BaseModel): class CreateTableColumn(BaseModel): name: str type: ColumnType - primary_key: bool null_allowed: bool index_length: Optional[int] = None size: Optional[int] = None @@ -993,8 +992,12 @@ class CreateForeignKey(BaseModel): on_delete: Optional[str] = None +class PrimaryKey(BaseModel): + pkid: int + + class Constraints(BaseModel): uniques: List[Unique] foreign_keys: List[ForeignKey] checks: List[str] - primary_key: List[str] + primary_key: List[PrimaryKey]