All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 6s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
37 lines
1.5 KiB
SQL
37 lines
1.5 KiB
SQL
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);
|