Files
ds-galo/backend/migrations/sqlite/000003_photo_medium_variant.up.sql
T

25 lines
928 B
SQL

-- SQLite cannot alter a CHECK constraint, so recreate photo_objects with the
-- extended role set (medium added) and copy the existing bindings across.
CREATE TABLE photo_objects_new (
photo_id TEXT NOT NULL REFERENCES photos(id) ON DELETE CASCADE,
object_id TEXT NOT NULL REFERENCES objects(id) ON DELETE RESTRICT,
role TEXT NOT NULL CHECK (role IN ('original', 'thumb', 'medium', 'preview')),
PRIMARY KEY (photo_id, role)
);
INSERT INTO photo_objects_new (photo_id, object_id, role)
SELECT photo_id, object_id, role FROM photo_objects;
DROP TABLE photo_objects;
ALTER TABLE photo_objects_new RENAME TO photo_objects;
CREATE INDEX IF NOT EXISTS photo_objects_object_idx ON photo_objects (object_id);
-- Regenerate variants for existing photos so they gain the medium variant and a
-- square thumb.
INSERT INTO variant_jobs (photo_id)
SELECT id FROM photos
WHERE 1
ON CONFLICT (photo_id) DO NOTHING;