chore: add missing migrations and routes
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 6s
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 6s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
36
infra/migrations/0050_add_users.sql
Normal file
36
infra/migrations/0050_add_users.sql
Normal file
@@ -0,0 +1,36 @@
|
||||
CREATE TABLE users (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
username TEXT NOT NULL UNIQUE,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Les tokens read ont un user_id obligatoire, les tokens admin NULL
|
||||
ALTER TABLE api_tokens ADD COLUMN user_id UUID REFERENCES users(id) ON DELETE CASCADE;
|
||||
|
||||
-- Rendre book_reading_progress par user
|
||||
ALTER TABLE book_reading_progress DROP CONSTRAINT book_reading_progress_pkey;
|
||||
ALTER TABLE book_reading_progress ADD COLUMN user_id UUID REFERENCES users(id) ON DELETE CASCADE;
|
||||
|
||||
-- Créer un user par défaut si des données existantes doivent être migrées
|
||||
INSERT INTO users (id, username)
|
||||
SELECT '00000000-0000-0000-0000-000000000001', 'default'
|
||||
WHERE EXISTS (
|
||||
SELECT 1 FROM book_reading_progress WHERE user_id IS NULL
|
||||
UNION ALL
|
||||
SELECT 1 FROM api_tokens WHERE scope = 'read' AND user_id IS NULL
|
||||
);
|
||||
|
||||
-- Rattacher les anciennes progressions de lecture au user default
|
||||
UPDATE book_reading_progress
|
||||
SET user_id = '00000000-0000-0000-0000-000000000001'
|
||||
WHERE user_id IS NULL;
|
||||
|
||||
-- Rattacher les anciens tokens read au user default
|
||||
UPDATE api_tokens
|
||||
SET user_id = '00000000-0000-0000-0000-000000000001'
|
||||
WHERE scope = 'read' AND user_id IS NULL;
|
||||
|
||||
ALTER TABLE book_reading_progress ALTER COLUMN user_id SET NOT NULL;
|
||||
ALTER TABLE book_reading_progress ADD PRIMARY KEY (book_id, user_id);
|
||||
DROP INDEX IF EXISTS idx_book_reading_progress_status;
|
||||
CREATE INDEX idx_book_reading_progress_status ON book_reading_progress(status, user_id);
|
||||
16
infra/migrations/0052_add_anilist_integration.sql
Normal file
16
infra/migrations/0052_add_anilist_integration.sql
Normal file
@@ -0,0 +1,16 @@
|
||||
-- Add AniList sync support
|
||||
ALTER TABLE libraries ADD COLUMN anilist_enabled BOOLEAN NOT NULL DEFAULT FALSE;
|
||||
|
||||
CREATE TABLE anilist_series_links (
|
||||
library_id UUID NOT NULL REFERENCES libraries(id) ON DELETE CASCADE,
|
||||
series_name TEXT NOT NULL,
|
||||
anilist_id INTEGER NOT NULL,
|
||||
anilist_title TEXT,
|
||||
anilist_url TEXT,
|
||||
status TEXT NOT NULL DEFAULT 'linked', -- 'linked' | 'synced' | 'error'
|
||||
linked_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
synced_at TIMESTAMPTZ,
|
||||
PRIMARY KEY (library_id, series_name)
|
||||
);
|
||||
|
||||
CREATE INDEX idx_anilist_series_links_library ON anilist_series_links(library_id);
|
||||
10
infra/migrations/0053_add_reading_status_provider.sql
Normal file
10
infra/migrations/0053_add_reading_status_provider.sql
Normal file
@@ -0,0 +1,10 @@
|
||||
-- Replace anilist_enabled boolean with generic reading_status_provider
|
||||
ALTER TABLE libraries ADD COLUMN reading_status_provider TEXT;
|
||||
UPDATE libraries SET reading_status_provider = 'anilist' WHERE anilist_enabled = TRUE;
|
||||
ALTER TABLE libraries DROP COLUMN anilist_enabled;
|
||||
|
||||
-- Add provider column to anilist_series_links for future multi-provider support
|
||||
ALTER TABLE anilist_series_links ADD COLUMN provider TEXT NOT NULL DEFAULT 'anilist';
|
||||
-- Update the primary key to include provider
|
||||
ALTER TABLE anilist_series_links DROP CONSTRAINT anilist_series_links_pkey;
|
||||
ALTER TABLE anilist_series_links ADD PRIMARY KEY (library_id, series_name, provider);
|
||||
Reference in New Issue
Block a user