From 6876a6edd784fe2146efcff2cc44a9d93612c975 Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Mon, 10 Mar 2025 18:33:50 +0100 Subject: [PATCH] Remove old migrations --- .../2020-09-27-201047_initial_schema/down.sql | 13 -- .../2020-09-27-201047_initial_schema/up.sql | 65 ---------- .../2022-04-10-103835_access_history/down.sql | 20 --- .../2022-04-10-103835_access_history/up.sql | 21 ---- .../down.sql | 15 --- .../up.sql | 15 --- .../2024-03-17-104156_reset_schema/down.sql | 18 ++- .../2024-03-17-104156_reset_schema/up.sql | 117 ++---------------- src/db/schema.rs | 10 -- 9 files changed, 24 insertions(+), 270 deletions(-) delete mode 100644 migrations/2020-09-27-201047_initial_schema/down.sql delete mode 100644 migrations/2020-09-27-201047_initial_schema/up.sql delete mode 100644 migrations/2022-04-10-103835_access_history/down.sql delete mode 100644 migrations/2022-04-10-103835_access_history/up.sql delete mode 100644 migrations/2023-02-11-094238_tracks_without_medium/down.sql delete mode 100644 migrations/2023-02-11-094238_tracks_without_medium/up.sql diff --git a/migrations/2020-09-27-201047_initial_schema/down.sql b/migrations/2020-09-27-201047_initial_schema/down.sql deleted file mode 100644 index ae0957e..0000000 --- a/migrations/2020-09-27-201047_initial_schema/down.sql +++ /dev/null @@ -1,13 +0,0 @@ -PRAGMA defer_foreign_keys; - -DROP TABLE "persons"; -DROP TABLE "instruments"; -DROP TABLE "works"; -DROP TABLE "instrumentations"; -DROP TABLE "work_parts"; -DROP TABLE "ensembles"; -DROP TABLE "recordings"; -DROP TABLE "performances"; -DROP TABLE "mediums"; -DROP TABLE "tracks"; - diff --git a/migrations/2020-09-27-201047_initial_schema/up.sql b/migrations/2020-09-27-201047_initial_schema/up.sql deleted file mode 100644 index e103d96..0000000 --- a/migrations/2020-09-27-201047_initial_schema/up.sql +++ /dev/null @@ -1,65 +0,0 @@ -CREATE TABLE "persons" ( - "id" TEXT NOT NULL PRIMARY KEY, - "first_name" TEXT NOT NULL, - "last_name" TEXT NOT NULL -); - -CREATE TABLE "instruments" ( - "id" TEXT NOT NULL PRIMARY KEY, - "name" TEXT NOT NULL -); - -CREATE TABLE "works" ( - "id" TEXT NOT NULL PRIMARY KEY, - "composer" TEXT NOT NULL REFERENCES "persons"("id"), - "title" TEXT NOT NULL -); - -CREATE TABLE "instrumentations" ( - "id" BIGINT NOT NULL PRIMARY KEY, - "work" TEXT NOT NULL REFERENCES "works"("id") ON DELETE CASCADE, - "instrument" TEXT NOT NULL REFERENCES "instruments"("id") ON DELETE CASCADE -); - -CREATE TABLE "work_parts" ( - "id" BIGINT NOT NULL PRIMARY KEY, - "work" TEXT NOT NULL REFERENCES "works"("id") ON DELETE CASCADE, - "part_index" BIGINT NOT NULL, - "title" TEXT NOT NULL -); - -CREATE TABLE "ensembles" ( - "id" TEXT NOT NULL PRIMARY KEY, - "name" TEXT NOT NULL -); - -CREATE TABLE "recordings" ( - "id" TEXT NOT NULL PRIMARY KEY, - "work" TEXT NOT NULL REFERENCES "works"("id"), - "comment" TEXT NOT NULL -); - -CREATE TABLE "performances" ( - "id" BIGINT NOT NULL PRIMARY KEY, - "recording" TEXT NOT NULL REFERENCES "recordings"("id") ON DELETE CASCADE, - "person" TEXT REFERENCES "persons"("id"), - "ensemble" TEXT REFERENCES "ensembles"("id"), - "role" TEXT REFERENCES "instruments"("id") -); - -CREATE TABLE "mediums" ( - "id" TEXT NOT NULL PRIMARY KEY, - "name" TEXT NOT NULL, - "discid" TEXT -); - -CREATE TABLE "tracks" ( - "id" TEXT NOT NULL PRIMARY KEY, - "medium" TEXT NOT NULL REFERENCES "mediums"("id") ON DELETE CASCADE, - "index" INTEGER NOT NULL, - "recording" TEXT NOT NULL REFERENCES "recordings"("id"), - "work_parts" TEXT NOT NULL, - "source_index" INTEGER NOT NULL, - "path" TEXT NOT NULL -); - diff --git a/migrations/2022-04-10-103835_access_history/down.sql b/migrations/2022-04-10-103835_access_history/down.sql deleted file mode 100644 index 6b294d8..0000000 --- a/migrations/2022-04-10-103835_access_history/down.sql +++ /dev/null @@ -1,20 +0,0 @@ -ALTER TABLE "persons" DROP COLUMN "last_used"; -ALTER TABLE "persons" DROP COLUMN "last_played"; - -ALTER TABLE "instruments" DROP COLUMN "last_used"; -ALTER TABLE "instruments" DROP COLUMN "last_played"; - -ALTER TABLE "works" DROP COLUMN "last_used"; -ALTER TABLE "works" DROP COLUMN "last_played"; - -ALTER TABLE "ensembles" DROP COLUMN "last_used"; -ALTER TABLE "ensembles" DROP COLUMN "last_played"; - -ALTER TABLE "recordings" DROP COLUMN "last_used"; -ALTER TABLE "recordings" DROP COLUMN "last_played"; - -ALTER TABLE "mediums" DROP COLUMN "last_used"; -ALTER TABLE "mediums" DROP COLUMN "last_played"; - -ALTER TABLE "tracks" DROP COLUMN "last_used"; -ALTER TABLE "tracks" DROP COLUMN "last_played"; diff --git a/migrations/2022-04-10-103835_access_history/up.sql b/migrations/2022-04-10-103835_access_history/up.sql deleted file mode 100644 index 27b609b..0000000 --- a/migrations/2022-04-10-103835_access_history/up.sql +++ /dev/null @@ -1,21 +0,0 @@ -ALTER TABLE "persons" ADD COLUMN "last_used" BIGINT; -ALTER TABLE "persons" ADD COLUMN "last_played" BIGINT; - -ALTER TABLE "instruments" ADD COLUMN "last_used" BIGINT; -ALTER TABLE "instruments" ADD COLUMN "last_played" BIGINT; - -ALTER TABLE "works" ADD COLUMN "last_used" BIGINT; -ALTER TABLE "works" ADD COLUMN "last_played" BIGINT; - -ALTER TABLE "ensembles" ADD COLUMN "last_used" BIGINT; -ALTER TABLE "ensembles" ADD COLUMN "last_played" BIGINT; - -ALTER TABLE "recordings" ADD COLUMN "last_used" BIGINT; -ALTER TABLE "recordings" ADD COLUMN "last_played" BIGINT; - -ALTER TABLE "mediums" ADD COLUMN "last_used" BIGINT; -ALTER TABLE "mediums" ADD COLUMN "last_played" BIGINT; - -ALTER TABLE "tracks" ADD COLUMN "last_used" BIGINT; -ALTER TABLE "tracks" ADD COLUMN "last_played" BIGINT; - diff --git a/migrations/2023-02-11-094238_tracks_without_medium/down.sql b/migrations/2023-02-11-094238_tracks_without_medium/down.sql deleted file mode 100644 index 2a4d3c8..0000000 --- a/migrations/2023-02-11-094238_tracks_without_medium/down.sql +++ /dev/null @@ -1,15 +0,0 @@ -CREATE TABLE "old_tracks" ( - "id" TEXT NOT NULL PRIMARY KEY, - "medium" TEXT NOT NULL REFERENCES "mediums"("id") ON DELETE CASCADE, - "index" INTEGER NOT NULL, - "recording" TEXT NOT NULL REFERENCES "recordings"("id"), - "work_parts" TEXT NOT NULL, - "source_index" INTEGER NOT NULL, - "path" TEXT NOT NULL, - "last_used" BIGINT, - "last_played" BIGINT -); - -INSERT INTO "old_tracks" SELECT * FROM "tracks" WHERE "medium" IS NOT NULL; -DROP TABLE "tracks"; -ALTER TABLE "old_tracks" RENAME TO "tracks"; \ No newline at end of file diff --git a/migrations/2023-02-11-094238_tracks_without_medium/up.sql b/migrations/2023-02-11-094238_tracks_without_medium/up.sql deleted file mode 100644 index 671478b..0000000 --- a/migrations/2023-02-11-094238_tracks_without_medium/up.sql +++ /dev/null @@ -1,15 +0,0 @@ -CREATE TABLE "new_tracks" ( - "id" TEXT NOT NULL PRIMARY KEY, - "medium" TEXT REFERENCES "mediums"("id") ON DELETE CASCADE, - "index" INTEGER NOT NULL, - "recording" TEXT NOT NULL REFERENCES "recordings"("id"), - "work_parts" TEXT NOT NULL, - "source_index" INTEGER NOT NULL, - "path" TEXT NOT NULL, - "last_used" BIGINT, - "last_played" BIGINT -); - -INSERT INTO "new_tracks" SELECT * FROM "tracks"; -DROP TABLE "tracks"; -ALTER TABLE "new_tracks" RENAME TO "tracks"; \ No newline at end of file diff --git a/migrations/2024-03-17-104156_reset_schema/down.sql b/migrations/2024-03-17-104156_reset_schema/down.sql index d730508..a5f270a 100644 --- a/migrations/2024-03-17-104156_reset_schema/down.sql +++ b/migrations/2024-03-17-104156_reset_schema/down.sql @@ -1 +1,17 @@ --- This migration is intended to become the initial schema. \ No newline at end of file +DROP TABLE persons; +DROP TABLE roles; +DROP TABLE instruments; +DROP TABLE works; +DROP TABLE work_persons; +DROP TABLE work_instruments; +DROP TABLE ensembles; +DROP TABLE ensemble_persons; +DROP TABLE recordings; +DROP TABLE recording_persons; +DROP TABLE recording_ensembles; +DROP TABLE tracks; +DROP TABLE track_works; +DROP TABLE mediums; +DROP TABLE albums; +DROP TABLE album_recordings; +DROP TABLE album_mediums; \ No newline at end of file diff --git a/migrations/2024-03-17-104156_reset_schema/up.sql b/migrations/2024-03-17-104156_reset_schema/up.sql index 72b6b71..4e98fdf 100644 --- a/migrations/2024-03-17-104156_reset_schema/up.sql +++ b/migrations/2024-03-17-104156_reset_schema/up.sql @@ -1,4 +1,4 @@ -CREATE TABLE persons_new ( +CREATE TABLE persons ( person_id TEXT NOT NULL PRIMARY KEY, name TEXT NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -15,7 +15,7 @@ CREATE TABLE roles ( last_used_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -CREATE TABLE instruments_new ( +CREATE TABLE instruments ( instrument_id TEXT NOT NULL PRIMARY KEY, name TEXT NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -24,7 +24,7 @@ CREATE TABLE instruments_new ( last_played_at TIMESTAMP ); -CREATE TABLE works_new ( +CREATE TABLE works ( work_id TEXT NOT NULL PRIMARY KEY, parent_work_id TEXT REFERENCES works(work_id), sequence_number INTEGER, @@ -50,7 +50,7 @@ CREATE TABLE work_instruments ( PRIMARY KEY (work_id, instrument_id) ); -CREATE TABLE ensembles_new ( +CREATE TABLE ensembles ( ensemble_id TEXT NOT NULL PRIMARY KEY, name TEXT NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -67,7 +67,7 @@ CREATE TABLE ensemble_persons ( PRIMARY KEY (ensemble_id, person_id, instrument_id) ); -CREATE TABLE recordings_new ( +CREATE TABLE recordings ( recording_id TEXT NOT NULL PRIMARY KEY, work_id TEXT NOT NULL REFERENCES works(work_id), year INTEGER, @@ -94,7 +94,7 @@ CREATE TABLE recording_ensembles ( PRIMARY KEY (recording_id, ensemble_id, role_id) ); -CREATE TABLE tracks_new ( +CREATE TABLE tracks ( track_id TEXT NOT NULL PRIMARY KEY, recording_id TEXT NOT NULL REFERENCES recordings(recording_id), recording_index INTEGER NOT NULL, @@ -114,7 +114,7 @@ CREATE TABLE track_works ( PRIMARY KEY (track_id, work_id) ); -CREATE TABLE mediums_new ( +CREATE TABLE mediums ( medium_id TEXT NOT NULL PRIMARY KEY, discid TEXT NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -145,106 +145,3 @@ CREATE TABLE album_mediums ( sequence_number INTEGER NOT NULL, PRIMARY KEY (album_id, medium_id) ); - -INSERT INTO persons_new (person_id, name) -SELECT id, json_set('{}', '$.generic', first_name || ' ' || last_name) -FROM persons; - -INSERT INTO roles (role_id, name) -VALUES ('380d7e09eb2f49c1a90db2ba4acb6ffd', json_set('{}', '$.generic', 'Composer')); - -INSERT INTO roles (role_id, name) -VALUES ('28ff0aeb11c041a6916d93e9b4884eef', json_set('{}', '$.generic', 'Performer')); - -INSERT INTO instruments_new (instrument_id, name) -SELECT id, json_set('{}', '$.generic', name) -FROM instruments; - -INSERT INTO works_new (work_id, name) -SELECT id, json_set('{}', '$.generic', title) -FROM works; - -INSERT INTO works_new (work_id, parent_work_id, sequence_number, name) -SELECT id, work, part_index, json_set('{}', '$.generic', title) -FROM work_parts; - -INSERT INTO work_persons (work_id, person_id, role_id, sequence_number) -SELECT id, composer, '380d7e09eb2f49c1a90db2ba4acb6ffd', 0 -FROM works; - -INSERT INTO work_instruments (work_id, instrument_id, sequence_number) -SELECT work, instrument, 0 -FROM instrumentations; - -INSERT INTO ensembles_new (ensemble_id, name) -SELECT id, json_set('{}', '$.generic', name) -FROM ensembles; - -INSERT INTO recordings_new (recording_id, work_id, year) -SELECT id, work, CAST(comment as INTEGER) -FROM recordings; - -UPDATE recordings_new -SET year = NULL -WHERE year <= 0; - -INSERT INTO recording_persons (recording_id, person_id, role_id, instrument_id, sequence_number) -SELECT recording, person, '28ff0aeb11c041a6916d93e9b4884eef', role, 0 -FROM performances -WHERE person IS NOT NULL; - -INSERT INTO recording_ensembles (recording_id, ensemble_id, role_id, sequence_number) -SELECT recording, ensemble, '28ff0aeb11c041a6916d93e9b4884eef', 0 -FROM performances -WHERE ensemble IS NOT NULL; - -INSERT INTO tracks_new (track_id, recording_id, recording_index, medium_id, medium_index, path) -SELECT id, recording, "index", medium, source_index, path -FROM tracks; - -INSERT INTO track_works (track_id, work_id, sequence_number) -SELECT tracks.id, work_parts.id, 0 -FROM tracks - JOIN recordings ON tracks.recording = recordings.id - JOIN work_parts ON recordings.work = work_parts.work - AND tracks.work_parts = work_parts.part_index; - -INSERT INTO mediums_new (medium_id, discid) -SELECT id, discid -FROM mediums; - -INSERT INTO albums (album_id, name) -SELECT id, json_set('{}', '$.generic', name) -FROM mediums; - --- This works because mediums, that become albums in this migration, keep their ID. -INSERT INTO album_recordings (album_id, recording_id, sequence_number) -SELECT medium, recording, ROW_NUMBER() OVER (PARTITION BY medium ORDER BY min_source_index) -FROM ( - SELECT medium, recording, MIN(source_index) AS min_source_index - FROM tracks GROUP BY medium, recording -); - --- See above -INSERT INTO album_mediums (album_id, medium_id, sequence_number) -SELECT id, id, 0 -FROM mediums; - -DROP TABLE persons; -DROP TABLE instruments; -DROP TABLE works; -DROP TABLE instrumentations; -DROP TABLE work_parts; -DROP TABLE ensembles; -DROP TABLE recordings; -DROP TABLE performances; -DROP TABLE mediums; -DROP TABLE tracks; - -ALTER TABLE persons_new RENAME TO persons; -ALTER TABLE instruments_new RENAME TO instruments; -ALTER TABLE works_new RENAME TO works; -ALTER TABLE recordings_new RENAME TO recordings; -ALTER TABLE tracks_new RENAME TO tracks; -ALTER TABLE ensembles_new RENAME TO ensembles; -ALTER TABLE mediums_new RENAME TO mediums; \ No newline at end of file diff --git a/src/db/schema.rs b/src/db/schema.rs index a847d60..e6328ca 100644 --- a/src/db/schema.rs +++ b/src/db/schema.rs @@ -161,15 +161,6 @@ diesel::table! { } } -diesel::table! { - work_sections (id) { - id -> BigInt, - work -> Text, - title -> Text, - before_index -> BigInt, - } -} - diesel::table! { works (work_id) { work_id -> Text, @@ -225,6 +216,5 @@ diesel::allow_tables_to_appear_in_same_query!( tracks, work_instruments, work_persons, - work_sections, works, );