From 4c467d431852595ff46536f50c695ab2a7d6a7f3 Mon Sep 17 00:00:00 2001 From: Yash Pankhania Date: Thu, 11 Jul 2024 08:04:03 +1000 Subject: [PATCH] fixed migration script with permissions --- db/project.xml | 1 + scripts/migrate_analysis_outputs.py | 31 +++++++++++++++++++---------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/db/project.xml b/db/project.xml index ad9a46880..97a067300 100644 --- a/db/project.xml +++ b/db/project.xml @@ -1449,6 +1449,7 @@ + SET @@system_versioning_alter_history = 1; diff --git a/scripts/migrate_analysis_outputs.py b/scripts/migrate_analysis_outputs.py index 5b90a4577..f921e817a 100644 --- a/scripts/migrate_analysis_outputs.py +++ b/scripts/migrate_analysis_outputs.py @@ -4,7 +4,11 @@ from databases import Database -from db.python.connect import Connection, CredentialedDatabaseConfiguration +from db.python.connect import ( + Connection, + CredentialedDatabaseConfiguration, + SMConnections, +) from db.python.tables.output_file import OutputFileTable @@ -15,7 +19,8 @@ def _get_connection_string(): # config = CredentialedDatabaseConfiguration(dbname='sm_dev', username='root') - return config.get_connection_string() + # return config.get_connection_string() + return config async def get_analyses_without_fileid(connection: Database): @@ -42,16 +47,22 @@ async def get_analyses_without_fileid(connection: Database): async def main(): """Go through all analysis objects and create output file objects where possible""" connection_string = _get_connection_string() - database = Database(connection_string or _get_connection_string(), echo=True) - connection = Connection( - connection=database, - project=None, - author='migrate_output_files', - on_behalf_of='yash', - readonly=False, + database = Database(connection_string.get_connection_string(), echo=True) + + sm_db = SMConnections.make_connection( + config=connection_string, + ) + await sm_db.connect() + formed_connection = Connection( + connection=sm_db, + author='yash', + project_id_map={}, + project_name_map={}, + on_behalf_of=None, ar_guid=None, + project=None, ) - oft = OutputFileTable(connection) + oft = OutputFileTable(formed_connection) analyses = await get_analyses_without_fileid(database) for analyis in analyses: await oft.process_output_for_analysis(