41 lines
1.7 KiB
SQL
41 lines
1.7 KiB
SQL
-- +goose Up
|
|
-- +goose StatementBegin
|
|
-- Allow personal user collections to act as TMDB/Trakt/MDBList imports.
|
|
--
|
|
-- Mirrors the source/sync columns we already keep on library_collections so a
|
|
-- profile-owned collection can store its source preset, last sync state, and a
|
|
-- cron schedule. Items continue to live in user_personal_collection_items and
|
|
-- are replaced by the user-collection sync service on each run.
|
|
|
|
ALTER TABLE user_personal_collections
|
|
ADD COLUMN IF NOT EXISTS description TEXT NOT NULL DEFAULT '',
|
|
ADD COLUMN IF NOT EXISTS source_url TEXT NOT NULL DEFAULT '',
|
|
ADD COLUMN IF NOT EXISTS source_config JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
ADD COLUMN IF NOT EXISTS sync_schedule TEXT,
|
|
ADD COLUMN IF NOT EXISTS next_sync_at TIMESTAMPTZ,
|
|
ADD COLUMN IF NOT EXISTS last_sync_at TIMESTAMPTZ,
|
|
ADD COLUMN IF NOT EXISTS last_sync_status TEXT NOT NULL DEFAULT '',
|
|
ADD COLUMN IF NOT EXISTS last_sync_message TEXT NOT NULL DEFAULT '',
|
|
ADD COLUMN IF NOT EXISTS item_count INTEGER NOT NULL DEFAULT 0;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_user_collections_next_sync_due
|
|
ON user_personal_collections (next_sync_at)
|
|
WHERE sync_schedule IS NOT NULL AND next_sync_at IS NOT NULL;
|
|
-- +goose StatementEnd
|
|
|
|
-- +goose Down
|
|
-- +goose StatementBegin
|
|
DROP INDEX IF EXISTS idx_user_collections_next_sync_due;
|
|
|
|
ALTER TABLE user_personal_collections
|
|
DROP COLUMN IF EXISTS item_count,
|
|
DROP COLUMN IF EXISTS last_sync_message,
|
|
DROP COLUMN IF EXISTS last_sync_status,
|
|
DROP COLUMN IF EXISTS last_sync_at,
|
|
DROP COLUMN IF EXISTS next_sync_at,
|
|
DROP COLUMN IF EXISTS sync_schedule,
|
|
DROP COLUMN IF EXISTS source_config,
|
|
DROP COLUMN IF EXISTS source_url,
|
|
DROP COLUMN IF EXISTS description;
|
|
-- +goose StatementEnd
|