mirror of
https://github.com/Dvorinka/SpotifyRecAlg.git
synced 2026-06-04 04:23:02 +00:00
50 lines
1.9 KiB
SQL
50 lines
1.9 KiB
SQL
-- +goose Up
|
|
create table if not exists provider_cache (
|
|
provider text not null,
|
|
item_type text not null,
|
|
item_id text not null,
|
|
market text not null default '',
|
|
payload jsonb not null default '{}'::jsonb,
|
|
fetched_at timestamptz not null default now(),
|
|
expires_at timestamptz not null,
|
|
last_error text,
|
|
primary key (provider, item_type, item_id, market)
|
|
);
|
|
|
|
create table if not exists import_jobs (
|
|
id text primary key,
|
|
provider text not null,
|
|
source_type text not null,
|
|
source_value text not null,
|
|
market text not null default '',
|
|
status text not null check (status in ('running', 'succeeded', 'failed')),
|
|
imported_tracks integer not null default 0 check (imported_tracks >= 0),
|
|
updated_tracks integer not null default 0 check (updated_tracks >= 0),
|
|
skipped integer not null default 0 check (skipped >= 0),
|
|
warnings jsonb not null default '[]'::jsonb,
|
|
started_at timestamptz not null default now(),
|
|
finished_at timestamptz
|
|
);
|
|
|
|
create table if not exists track_enrichment (
|
|
track_id text not null references tracks(id) on delete cascade,
|
|
provider text not null,
|
|
musicbrainz_recording_id text not null default '',
|
|
musicbrainz_artist_id text not null default '',
|
|
isrc text not null default '',
|
|
payload jsonb not null default '{}'::jsonb,
|
|
updated_at timestamptz not null default now(),
|
|
primary key (track_id, provider)
|
|
);
|
|
|
|
create index if not exists provider_cache_expiry_idx on provider_cache (expires_at);
|
|
create index if not exists import_jobs_provider_started_idx on import_jobs (provider, started_at desc);
|
|
create index if not exists track_enrichment_isrc_idx on track_enrichment (isrc) where isrc <> '';
|
|
create index if not exists tracks_external_gin_idx on tracks using gin (external);
|
|
|
|
-- +goose Down
|
|
drop index if exists tracks_external_gin_idx;
|
|
drop table if exists track_enrichment;
|
|
drop table if exists import_jobs;
|
|
drop table if exists provider_cache;
|