Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions internal/database/migrations/postgres/022_add_arr_types.sql
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
-- +goose Up
-- Migration 022: Update media_files instance_type check constraint for Postgres
-- Postgres allows dropping and adding constraints

ALTER TABLE media_files DROP CONSTRAINT IF EXISTS media_files_instance_type_check;
ALTER TABLE media_files ADD CONSTRAINT media_files_instance_type_check CHECK (instance_type IN ('radarr', 'sonarr', 'lidarr', 'readarr', 'whisparr'));

-- +goose Down
ALTER TABLE media_files DROP CONSTRAINT IF EXISTS media_files_instance_type_check;
ALTER TABLE media_files ADD CONSTRAINT media_files_instance_type_check CHECK (instance_type IN ('radarr', 'sonarr'));
23 changes: 23 additions & 0 deletions internal/database/migrations/sqlite/022_add_arr_types.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
-- +goose Up
-- Migration 022: Update media_files instance_type check constraint
-- SQLite does not support ALTER TABLE for constraints, so we have to recreate the table

Expand All @@ -21,3 +22,25 @@ ALTER TABLE media_files_new RENAME TO media_files;
CREATE INDEX idx_media_files_file_path ON media_files(file_path);
CREATE INDEX idx_media_files_instance ON media_files(instance_name, instance_type);
CREATE INDEX idx_media_files_external ON media_files(instance_name, instance_type, external_id);

-- +goose Down
CREATE TABLE media_files_old (
id INTEGER PRIMARY KEY AUTOINCREMENT,
instance_name TEXT NOT NULL,
instance_type TEXT NOT NULL CHECK(instance_type IN ('radarr', 'sonarr')),
external_id INTEGER NOT NULL,
file_path TEXT NOT NULL,
file_size INTEGER,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO media_files_old SELECT * FROM media_files WHERE instance_type IN ('radarr', 'sonarr');

DROP TABLE media_files;

ALTER TABLE media_files_old RENAME TO media_files;

CREATE INDEX idx_media_files_file_path ON media_files(file_path);
CREATE INDEX idx_media_files_instance ON media_files(instance_name, instance_type);
CREATE INDEX idx_media_files_external ON media_files(instance_name, instance_type, external_id);
Loading