mirror of
https://github.com/immich-app/immich.git
synced 2025-06-23 15:30:51 -04:00
* feat: private view * pr feedback * sql generation * feat: visibility column * fix: set visibility value as the same as the still part after unlinked live photos * fix: test * pr feedback
38 lines
1.6 KiB
TypeScript
38 lines
1.6 KiB
TypeScript
import { Kysely, sql } from 'kysely';
|
|
|
|
export async function up(db: Kysely<any>): Promise<void> {
|
|
await sql`CREATE TYPE "asset_visibility_enum" AS ENUM ('archive','timeline','hidden');`.execute(db);
|
|
await sql`ALTER TABLE "assets"
|
|
ADD "visibility" asset_visibility_enum NOT NULL DEFAULT 'timeline';`.execute(db);
|
|
|
|
await sql`
|
|
UPDATE "assets"
|
|
SET "visibility" = CASE
|
|
WHEN "isArchived" THEN 'archive'::asset_visibility_enum
|
|
WHEN "isVisible" THEN 'timeline'::asset_visibility_enum
|
|
ELSE 'hidden'::asset_visibility_enum
|
|
END;
|
|
`.execute(db);
|
|
|
|
await sql`ALTER TABLE "assets" DROP COLUMN "isVisible";`.execute(db);
|
|
await sql`ALTER TABLE "assets" DROP COLUMN "isArchived";`.execute(db);
|
|
}
|
|
|
|
export async function down(db: Kysely<any>): Promise<void> {
|
|
await sql`ALTER TABLE "assets" ADD COLUMN "isArchived" BOOLEAN NOT NULL DEFAULT FALSE;`.execute(db);
|
|
await sql`ALTER TABLE "assets" ADD COLUMN "isVisible" BOOLEAN NOT NULL DEFAULT TRUE;`.execute(db);
|
|
|
|
await sql`
|
|
UPDATE "assets"
|
|
SET
|
|
"isArchived" = ("visibility" = 'archive'::asset_visibility_enum),
|
|
"isVisible" = CASE
|
|
WHEN "visibility" = 'timeline'::asset_visibility_enum THEN TRUE
|
|
WHEN "visibility" = 'archive'::asset_visibility_enum THEN TRUE
|
|
ELSE FALSE
|
|
END;
|
|
`.execute(db);
|
|
await sql`ALTER TABLE "assets" DROP COLUMN "visibility";`.execute(db);
|
|
await sql`DROP TYPE "asset_visibility_enum";`.execute(db);
|
|
}
|