diff --git a/src/main/resources/db/migration/V7_0__NewDatabaseStructure.sql b/src/main/resources/db/migration/V7_0__NewDatabaseStructure.sql index c1732c9e94860337218e6af917b1b523980a3d63..3f9f7c0c6138e67d8975bbd6e07dbed724d392ca 100644 --- a/src/main/resources/db/migration/V7_0__NewDatabaseStructure.sql +++ b/src/main/resources/db/migration/V7_0__NewDatabaseStructure.sql @@ -1,8 +1,3 @@ -UPDATE experiment -SET algorithms = - ( - SELECT SUBSTR(algorithms, 2, LENGTH(algorithms) - 2) - ); UPDATE experiment SET workflowstatus = 'error' @@ -26,10 +21,16 @@ DROP COLUMN hasservererror, DROP COLUMN validations, DROP COLUMN model_slug; -ALTER TABLE experiment -RENAME algorithms TO algorithm; -ALTER TABLE experiment -ALTER COLUMN algorithm TYPE json USING algorithm::json; +ALTER TABLE experiment RENAME algorithms TO algorithm; +UPDATE experiment SET algorithm = (algorithm::json ->> 0); + +UPDATE experiment SET result = result::json #>>'{0,result}' WHERE (algorithm::json->>'type') <> 'workflow'; +UPDATE experiment SET result = (SELECT jsonb_agg(value -> 'result') FROM jsonb_array_elements(result::jsonb)) WHERE (algorithm::json->>'type') = 'workflow'; +UPDATE experiment SET result = (SELECT jsonb_agg(d.data) FROM jsonb_array_elements(result::jsonb) t, json_array_elements(t.value::json) d(data)) WHERE (algorithm::json->>'type') = 'workflow'; + +ALTER TABLE experiment ADD COLUMN algorithmId text; +UPDATE experiment SET algorithmId = (algorithm::json ->> 'name'); + ALTER TABLE experiment RENAME createdby_username TO created_by_username; ALTER TABLE experiment @@ -39,14 +40,6 @@ RENAME resultsviewed TO viewed; ALTER TABLE experiment RENAME workflowstatus TO status; -ALTER TABLE experiment -ADD COLUMN algorithmId text; - -UPDATE experiment -SET algorithmId = (algorithm ->> 'name'); - -ALTER TABLE experiment -ALTER COLUMN algorithm TYPE text; ALTER TABLE experiment ADD COLUMN updated timestamp without time zone;