fix: use constrained foreign key for files track_type
This commit is contained in:
parent
bcaea16c19
commit
db976881f0
26 changed files with 1233 additions and 113 deletions
55
api/libretime_api/legacy/migrations/0035_3_0_0_alpha_13_9.py
Normal file
55
api/libretime_api/legacy/migrations/0035_3_0_0_alpha_13_9.py
Normal file
|
@ -0,0 +1,55 @@
|
|||
# pylint: disable=invalid-name
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
from ._migrations import legacy_migration_factory
|
||||
|
||||
UP = """
|
||||
ALTER TABLE "cc_files" ADD COLUMN "track_type_id" INTEGER;
|
||||
ALTER TABLE "cc_files" ADD CONSTRAINT "cc_files_track_type_fkey"
|
||||
FOREIGN KEY ("track_type_id")
|
||||
REFERENCES "cc_track_types" ("id");
|
||||
|
||||
UPDATE "cc_files" previous SET "track_type_id" = (
|
||||
SELECT "id" FROM "cc_track_types"
|
||||
WHERE "code" = previous."track_type"
|
||||
)
|
||||
WHERE "track_type" IS NOT NULL;
|
||||
|
||||
UPDATE "cc_pref" previous SET "valstr" = (
|
||||
SELECT "id" FROM "cc_track_types"
|
||||
WHERE "code" = previous."valstr"
|
||||
)
|
||||
WHERE "keystr" = 'tracktype_default'
|
||||
AND "valstr" <> '';
|
||||
|
||||
ALTER TABLE "cc_files" DROP COLUMN IF EXISTS "track_type";
|
||||
"""
|
||||
|
||||
DOWN = """
|
||||
ALTER TABLE "cc_files" DROP CONSTRAINT "cc_files_track_type_fkey";
|
||||
ALTER TABLE "cc_files" DROP COLUMN IF EXISTS "track_type_id";
|
||||
|
||||
ALTER TABLE "cc_files" ADD COLUMN "track_type" VARCHAR(16);
|
||||
|
||||
UPDATE "cc_pref" previous SET "valstr" = (
|
||||
SELECT "code" FROM "cc_track_types"
|
||||
WHERE "id" = previous."valstr"::int
|
||||
)
|
||||
WHERE "keystr" = 'tracktype_default'
|
||||
AND "valstr" <> '';
|
||||
"""
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("legacy", "0034_3_0_0_alpha_13_8"),
|
||||
]
|
||||
operations = [
|
||||
migrations.RunPython(
|
||||
code=legacy_migration_factory(
|
||||
target="3.0.0-alpha.13.9",
|
||||
sql=UP,
|
||||
)
|
||||
)
|
||||
]
|
|
@ -1 +1 @@
|
|||
LEGACY_SCHEMA_VERSION = "3.0.0-alpha.13.8"
|
||||
LEGACY_SCHEMA_VERSION = "3.0.0-alpha.13.9"
|
||||
|
|
|
@ -74,7 +74,7 @@ CREATE TABLE "cc_files"
|
|||
"filesize" INTEGER DEFAULT 0 NOT NULL,
|
||||
"description" VARCHAR(512),
|
||||
"artwork" VARCHAR(4096),
|
||||
"track_type" VARCHAR(16),
|
||||
"track_type_id" INTEGER,
|
||||
PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
|
@ -720,6 +720,10 @@ ALTER TABLE "cc_files" ADD CONSTRAINT "cc_files_editedby_fkey"
|
|||
FOREIGN KEY ("editedby")
|
||||
REFERENCES "cc_subjs" ("id");
|
||||
|
||||
ALTER TABLE "cc_files" ADD CONSTRAINT "cc_files_track_type_fkey"
|
||||
FOREIGN KEY ("track_type_id")
|
||||
REFERENCES "cc_track_types" ("id");
|
||||
|
||||
ALTER TABLE "cc_show" ADD CONSTRAINT "cc_playlist_autoplaylist_fkey"
|
||||
FOREIGN KEY ("autoplaylist_id")
|
||||
REFERENCES "cc_playlist" ("id")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue