diff --git a/dbrepo-metadata-db/migration/16/data.py b/dbrepo-metadata-db/migration/16/data.py index eeade6f3ab6a989103e9ae88f56ed59e4779745f..6d919cfa382b286783d649f30208f1ac0c3606c8 100644 --- a/dbrepo-metadata-db/migration/16/data.py +++ b/dbrepo-metadata-db/migration/16/data.py @@ -26,7 +26,7 @@ def update_concepts() -> None: def update_ontologies() -> None: plan.append("-- ontologies") plan.append("BEGIN;") - plan.append(f"UPDATE mdb_ontology SET id = UUID()") + plan.append(f"UPDATE mdb_ontologies SET id = UUID();") plan.append("COMMIT;") @@ -74,14 +74,14 @@ def update_databases() -> None: new_id: uuid = uuid.uuid4() plan.append(f"UPDATE mdb_tables SET tDBID = '{new_id}' WHERE tDBID = {old_id};") plan.append(f"UPDATE mdb_have_access SET database_id = '{new_id}' WHERE database_id = {old_id};") - plan.append(f"UPDATE mdb_views SET vdbid = '{new_id}' WHERE vdbid = {old_id};") + plan.append(f"UPDATE mdb_view SET vdbid = '{new_id}' WHERE vdbid = {old_id};") plan.append(f"UPDATE mdb_identifiers SET dbid = '{new_id}' WHERE dbid = {old_id};") plan.append(f"UPDATE mdb_access SET aDBID = '{new_id}' WHERE aDBID = {old_id};") for view in database.views: v_old_id: int = view.id v_new_id: uuid = uuid.uuid4() plan.append(f"UPDATE mdb_identifiers SET vid = '{v_new_id}' WHERE vid = {v_old_id};") - plan.append(f"UPDATE mdb_view_columns SET id = UUID(), view_id = '{v_new_id}' WHERE tid = {v_old_id};") + plan.append(f"UPDATE mdb_view_columns SET id = UUID(), view_id = '{v_new_id}' WHERE id = {v_old_id};") for table in database.tables: tbl_old_id: int = table.id tbl_new_id: uuid = uuid.uuid4() @@ -99,8 +99,8 @@ def update_databases() -> None: for uk in table.constraints.uniques: uk_old_id: int = uk.id uk_new_id: uuid = uuid.uuid4() - plan.append(f"UPDATE mdb_constraints_unique SET uid = '{uk_new_id}', tid = '{tbl_new_id}' WHERE uid = {uk_old_id}") - plan.append(f"UPDATE mdb_constraints_unique_columns SET id = UUID(), uid = '{uk_new_id}' WHERE uid = {uk_old_id}") + plan.append(f"UPDATE mdb_constraints_unique SET uid = '{uk_new_id}', tid = '{tbl_new_id}' WHERE uid = {uk_old_id};") + plan.append(f"UPDATE mdb_constraints_unique_columns SET id = UUID(), uid = '{uk_new_id}' WHERE uid = {uk_old_id};") for column in table.columns: col_old_id: int = column.id col_new_id: uuid = uuid.uuid4() @@ -120,7 +120,7 @@ def update_databases() -> None: def update_messages() -> None: plan.append("-- messages") plan.append("BEGIN;") - plan.append(f"UPDATE mdb_banner_messages SET ID = UUID();") + plan.append(f"UPDATE mdb_messages SET ID = UUID();") plan.append("COMMIT;") def update_identifiers() -> None: @@ -134,7 +134,7 @@ def update_identifiers() -> None: plan.append(f"UPDATE mdb_identifier_descriptions SET id = UUID(), pid = '{i_new_id}' WHERE pid = {i_old_id};") plan.append(f"UPDATE mdb_identifier_titles SET id = UUID(), pid = '{i_new_id}' WHERE pid = {i_old_id};") plan.append(f"UPDATE mdb_identifier_funders SET id = UUID(), pid = '{i_new_id}' WHERE pid = {i_old_id};") - plan.append(f"UPDATE mdb_identifier_licenses SET id = UUID(), pid = '{i_new_id}' WHERE pid = {i_old_id};") + plan.append(f"UPDATE mdb_identifier_licenses SET pid = '{i_new_id}' WHERE pid = {i_old_id};") plan.append("COMMIT;") diff --git a/dbrepo-metadata-db/migration/16/schema.sql b/dbrepo-metadata-db/migration/16/schema.sql index e3cf081f33838cbe37dfeafd9aec2d173799b665..5da2bb436bbbc48b49ca74af64c65282abaecf98 100644 --- a/dbrepo-metadata-db/migration/16/schema.sql +++ b/dbrepo-metadata-db/migration/16/schema.sql @@ -83,6 +83,8 @@ ALTER TABLE mdb_identifier_creators DROP SYSTEM VERSIONING; ALTER TABLE mdb_identifier_creators DROP FOREIGN KEY mdb_identifier_creators_ibfk_1; +ALTER TABLE mdb_identifier_creators + CHANGE COLUMN id id VARCHAR(36) NOT NULL DEFAULT UUID(); ALTER TABLE mdb_identifier_creators CHANGE COLUMN pid pid VARCHAR(36) NOT NULL; -- mdb_identifier_descriptions @@ -90,6 +92,8 @@ ALTER TABLE mdb_identifier_descriptions DROP SYSTEM VERSIONING; ALTER TABLE mdb_identifier_descriptions DROP FOREIGN KEY mdb_identifier_descriptions_ibfk_1; +ALTER TABLE mdb_identifier_descriptions + CHANGE COLUMN id id VARCHAR(36) NOT NULL DEFAULT UUID(); ALTER TABLE mdb_identifier_descriptions CHANGE COLUMN pid pid VARCHAR(36) NOT NULL; -- mdb_identifier_funders @@ -97,6 +101,8 @@ ALTER TABLE mdb_identifier_funders DROP SYSTEM VERSIONING; ALTER TABLE mdb_identifier_funders DROP FOREIGN KEY mdb_identifier_funders_ibfk_1; +ALTER TABLE mdb_identifier_funders + CHANGE COLUMN id id VARCHAR(36) NOT NULL DEFAULT UUID(); ALTER TABLE mdb_identifier_funders CHANGE COLUMN pid pid VARCHAR(36) NOT NULL; -- mdb_identifier_licenses @@ -226,6 +232,8 @@ ALTER TABLE mdb_constraints_primary_key CHANGE COLUMN pkid pkid VARCHAR(36) NOT NULL DEFAULT UUID(); ALTER TABLE mdb_constraints_primary_key CHANGE COLUMN tID tID VARCHAR(36) NOT NULL; +ALTER TABLE mdb_constraints_primary_key + CHANGE COLUMN cid cid VARCHAR(36) NOT NULL; -- mdb_constraints_unique ALTER TABLE mdb_constraints_unique DROP FOREIGN KEY mdb_constraints_unique_ibfk_1; @@ -410,9 +418,9 @@ ALTER TABLE mdb_constraints_foreign_key_reference ADD SYSTEM VERSIONING; -- mdb_constraints_primary_key ALTER TABLE mdb_constraints_primary_key - ADD FOREIGN KEY (pkid) REFERENCES mdb_tables (ID); + ADD FOREIGN KEY (tID) REFERENCES mdb_tables (ID); ALTER TABLE mdb_constraints_primary_key - ADD FOREIGN KEY (tID) REFERENCES mdb_columns (ID); + ADD FOREIGN KEY (cid) REFERENCES mdb_columns (ID); ALTER TABLE mdb_constraints_primary_key ADD SYSTEM VERSIONING; -- mdb_constraints_unique diff --git a/lib/python/tests/test_unit_container.py b/lib/python/tests/test_unit_container.py index b7a35e6a4a714f38d3cb06841541b182a0c769e2..39140816355ad68e9c8528bfe60b5122aa6e4ee2 100644 --- a/lib/python/tests/test_unit_container.py +++ b/lib/python/tests/test_unit_container.py @@ -28,7 +28,8 @@ class ContainerUnitTest(unittest.TestCase): image=ImageBrief(id=1, name="mariadb", version="10.11.3", - jdbc_method="mariadb"), + jdbc_method="mariadb", + default=True), hash="f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50") ] # mock diff --git a/lib/python/tests/test_unit_database.py b/lib/python/tests/test_unit_database.py index 203c296b9c86d9bca0fce4f3b433af298f6cd251..9a90f1f513da732e94b0502a763da8e7ce144fea 100644 --- a/lib/python/tests/test_unit_database.py +++ b/lib/python/tests/test_unit_database.py @@ -28,18 +28,7 @@ class DatabaseUnitTest(unittest.TestCase): contact=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'), internal_name='test_abcd', is_public=True, - is_schema_public=True, - container=ContainerBrief( - id=1, - name='MariaDB Galera 11.1.3', - internal_name='mariadb', - image=ImageBrief( - id=1, - name='mariadb', - version='11.2.2', - jdbc_method='mariadb' - ) - ) + is_schema_public=True ) ] with requests_mock.Mocker() as mock: @@ -67,7 +56,8 @@ class DatabaseUnitTest(unittest.TestCase): id=1, name='mariadb', version='11.2.2', - jdbc_method='mariadb' + jdbc_method='mariadb', + default=True ) ) ) @@ -122,7 +112,8 @@ class DatabaseUnitTest(unittest.TestCase): id=1, name='mariadb', version='11.2.2', - jdbc_method='mariadb' + jdbc_method='mariadb', + default=True ) ) ) @@ -184,7 +175,8 @@ class DatabaseUnitTest(unittest.TestCase): id=1, name='mariadb', version='11.2.2', - jdbc_method='mariadb' + jdbc_method='mariadb', + default=True ) ) ) @@ -246,7 +238,8 @@ class DatabaseUnitTest(unittest.TestCase): id=1, name='mariadb', version='11.2.2', - jdbc_method='mariadb' + jdbc_method='mariadb', + default=True ) ) ) diff --git a/lib/python/tests/test_unit_identifier.py b/lib/python/tests/test_unit_identifier.py index 8726d05ef23108c2a0a8fb9e8c4cd65052e19b1e..930e60dc5618766a620b33d47936f9ad45edfa41 100644 --- a/lib/python/tests/test_unit_identifier.py +++ b/lib/python/tests/test_unit_identifier.py @@ -6,7 +6,7 @@ from dbrepo.RestClient import RestClient from dbrepo.api.dto import Identifier, IdentifierType, SaveIdentifierTitle, Creator, IdentifierTitle, \ IdentifierDescription, SaveIdentifierDescription, Language, SaveIdentifierFunder, SaveRelatedIdentifier, \ RelatedIdentifierRelation, RelatedIdentifierType, IdentifierFunder, RelatedIdentifier, UserBrief, \ - IdentifierStatusType, CreateIdentifierCreator + IdentifierStatusType, CreateIdentifierCreator, IdentifierBrief from dbrepo.api.exceptions import MalformedError, ForbiddenError, NotExistsError, AuthenticationError @@ -112,24 +112,17 @@ class IdentifierUnitTest(unittest.TestCase): def test_get_identifiers_succeeds(self): with requests_mock.Mocker() as mock: - exp = [Identifier(id=10, - database_id=1, - view_id=32, - publication_year=2024, - publisher='TU Wien', - type=IdentifierType.VIEW, - language=Language.EN, - descriptions=[IdentifierDescription(id=2, description='Test Description')], - titles=[IdentifierTitle(id=3, title='Test Title')], - funders=[IdentifierFunder(id=4, funder_name='FWF')], - related_identifiers=[RelatedIdentifier(id=7, value='10.12345/abc', - relation=RelatedIdentifierRelation.CITES, - type=RelatedIdentifierType.DOI)], - creators=[Creator(id=5, creator_name='Carberry, Josiah')], - status=IdentifierStatusType.PUBLISHED, - owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'))] + exp = [IdentifierBrief(id=10, + database_id=1, + view_id=32, + publication_year=2024, + publisher='TU Wien', + type=IdentifierType.VIEW, + titles=[IdentifierTitle(id=3, title='Test Title')], + status=IdentifierStatusType.PUBLISHED, + owned_by='8638c043-5145-4be8-a3e4-4b79991b0a16')] # mock - mock.get('/api/identifiers', json=[exp[0].model_dump()], headers={"Accept": "application/json"}) + mock.get('/api/identifier', json=[exp[0].model_dump()], headers={"Accept": "application/json"}) # test response = RestClient().get_identifiers() self.assertEqual(exp, response)