gimmich

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

schema.sql (135590B)


      1 --
      2 -- PostgreSQL database dump
      3 --
      4 
      5 -- \restrict mjMyY2YEVBfWGabnjdRqEcQmimigWbvovifIDg4VxfkA30tCaxYDjnokejkP5XZ
      6 
      7 -- Dumped from database version 14.19 (Debian 14.19-1.pgdg12+1)
      8 -- Dumped by pg_dump version 14.19 (Debian 14.19-1.pgdg12+1)
      9 
     10 -- SET statement_timeout = 0;
     11 -- SET lock_timeout = 0;
     12 -- SET idle_in_transaction_session_timeout = 0;
     13 -- SET client_encoding = 'UTF8';
     14 -- SET standard_conforming_strings = on;
     15 -- SELECT pg_catalog.set_config('search_path', '', false);
     16 -- SET check_function_bodies = false;
     17 -- SET xmloption = content;
     18 -- SET client_min_messages = warning;
     19 -- SET row_security = off;
     20 
     21 --
     22 -- Name: cube; Type: EXTENSION; Schema: -; Owner: -
     23 --
     24 
     25 -- CREATE EXTENSION IF NOT EXISTS cube WITH SCHEMA public;
     26 
     27 
     28 --
     29 -- Name: EXTENSION cube; Type: COMMENT; Schema: -; Owner: 
     30 --
     31 
     32 -- COMMENT ON EXTENSION cube IS 'data type for multidimensional cubes';
     33 
     34 
     35 --
     36 -- Name: earthdistance; Type: EXTENSION; Schema: -; Owner: -
     37 --
     38 
     39 -- CREATE EXTENSION IF NOT EXISTS earthdistance WITH SCHEMA public;
     40 
     41 
     42 --
     43 -- Name: EXTENSION earthdistance; Type: COMMENT; Schema: -; Owner: 
     44 --
     45 
     46 -- COMMENT ON EXTENSION earthdistance IS 'calculate great-circle distances on the surface of the Earth';
     47 
     48 
     49 --
     50 -- Name: pg_trgm; Type: EXTENSION; Schema: -; Owner: -
     51 --
     52 
     53 -- CREATE EXTENSION IF NOT EXISTS pg_trgm WITH SCHEMA public;
     54 
     55 
     56 --
     57 -- Name: EXTENSION pg_trgm; Type: COMMENT; Schema: -; Owner: 
     58 --
     59 
     60 -- COMMENT ON EXTENSION pg_trgm IS 'text similarity measurement and index searching based on trigrams';
     61 
     62 
     63 --
     64 -- Name: unaccent; Type: EXTENSION; Schema: -; Owner: -
     65 --
     66 
     67 -- CREATE EXTENSION IF NOT EXISTS unaccent WITH SCHEMA public;
     68 
     69 
     70 --
     71 -- Name: EXTENSION unaccent; Type: COMMENT; Schema: -; Owner: 
     72 --
     73 
     74 -- COMMENT ON EXTENSION unaccent IS 'text search dictionary that removes accents';
     75 
     76 
     77 --
     78 -- Name: uuid-ossp; Type: EXTENSION; Schema: -; Owner: -
     79 --
     80 
     81 -- CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public;
     82 
     83 
     84 --
     85 -- Name: EXTENSION "uuid-ossp"; Type: COMMENT; Schema: -; Owner: 
     86 --
     87 
     88 -- COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)';
     89 
     90 
     91 --
     92 -- Name: vector; Type: EXTENSION; Schema: -; Owner: -
     93 --
     94 
     95 -- CREATE EXTENSION IF NOT EXISTS vector WITH SCHEMA public;
     96 
     97 
     98 --
     99 -- Name: EXTENSION vector; Type: COMMENT; Schema: -; Owner: 
    100 --
    101 
    102 -- COMMENT ON EXTENSION vector IS 'vector data type and ivfflat and hnsw access methods';
    103 
    104 
    105 --
    106 -- Name: vchord; Type: EXTENSION; Schema: -; Owner: -
    107 --
    108 
    109 -- CREATE EXTENSION IF NOT EXISTS vchord WITH SCHEMA public;
    110 
    111 
    112 --
    113 -- Name: EXTENSION vchord; Type: COMMENT; Schema: -; Owner: 
    114 --
    115 
    116 -- COMMENT ON EXTENSION vchord IS 'vchord: Vector database plugin for Postgres, written in Rust, specifically designed for LLM';
    117 
    118 
    119 --
    120 -- Name: album_user_role_enum; Type: TYPE; Schema: public; Owner: postgres
    121 --
    122 
    123 -- ENuM not supported in sqlite
    124 -- CREATE TYPE public.album_user_role_enum AS ENUM (
    125 --     'owner',
    126 --     'editor',
    127 --     'viewer'
    128 -- );
    129 
    130 
    131 -- ALTER TYPE public.album_user_role_enum OWNER TO postgres;
    132 
    133 --
    134 -- Name: asset_checksum_algorithm_enum; Type: TYPE; Schema: public; Owner: postgres
    135 --
    136 
    137 -- CREATE TYPE public.asset_checksum_algorithm_enum AS ENUM (
    138 --     'sha1',
    139 --     'sha1-path'
    140 -- );
    141 
    142 
    143 -- ALTER TYPE public.asset_checksum_algorithm_enum OWNER TO postgres;
    144 
    145 --
    146 -- Name: asset_visibility_enum; Type: TYPE; Schema: public; Owner: postgres
    147 --
    148 
    149 -- CREATE TYPE public.asset_visibility_enum AS ENUM (
    150 --     'archive',
    151 --     'timeline',
    152 --     'hidden',
    153 --     'locked'
    154 -- );
    155 
    156 
    157 -- ALTER TYPE public.asset_visibility_enum OWNER TO postgres;
    158 
    159 --
    160 -- Name: assets_status_enum; Type: TYPE; Schema: public; Owner: postgres
    161 --
    162 
    163 -- CREATE TYPE public.assets_status_enum AS ENUM (
    164 --     'active',
    165 --     'trashed',
    166 --     'deleted'
    167 -- );
    168 
    169 
    170 -- ALTER TYPE public.assets_status_enum OWNER TO postgres;
    171 
    172 --
    173 -- Name: sourcetype; Type: TYPE; Schema: public; Owner: postgres
    174 --
    175 
    176 -- CREATE TYPE public.sourcetype AS ENUM (
    177 --     'machine-learning',
    178 --     'exif',
    179 --     'manual'
    180 -- );
    181 
    182 
    183 -- ALTER TYPE public.sourcetype OWNER TO postgres;
    184 
    185 --
    186 -- Name: video_stream_variant_codec_enum; Type: TYPE; Schema: public; Owner: postgres
    187 --
    188 
    189 -- CREATE TYPE public.video_stream_variant_codec_enum AS ENUM (
    190 --     'av1',
    191 --     'hevc',
    192 --     'h264'
    193 -- );
    194 
    195 
    196 -- ALTER TYPE public.video_stream_variant_codec_enum OWNER TO postgres;
    197 
    198 --
    199 -- Name: album_asset_delete_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    200 --
    201 
    202 -- CREATE FUNCTION public.album_asset_delete_audit() RETURNS trigger
    203 --     LANGUAGE plpgsql
    204 --     AS $$
    205 --     BEGIN
    206 --       INSERT INTO album_asset_audit ("albumId", "assetId")
    207 --       SELECT "albumId", "assetId" FROM OLD
    208 --       WHERE "albumId" IN (SELECT "id" FROM album WHERE "id" IN (SELECT "albumId" FROM OLD));
    209 --       RETURN NULL;
    210 --     END
    211 --   $$;
    212 
    213 
    214 -- ALTER FUNCTION public.album_asset_delete_audit() OWNER TO postgres;
    215 
    216 --
    217 -- Name: album_user_after_insert(); Type: FUNCTION; Schema: public; Owner: postgres
    218 --
    219 
    220 -- CREATE FUNCTION public.album_user_after_insert() RETURNS trigger
    221 --     LANGUAGE plpgsql
    222 --     AS $$
    223 --     BEGIN
    224 --       UPDATE album SET "updatedAt" = clock_timestamp(), "updateId" = immich_uuid_v7(clock_timestamp())
    225 --       WHERE "id" IN (SELECT "albumId" FROM inserted_rows)
    226 --         AND NOT EXISTS (SELECT FROM inserted_rows WHERE role = 'owner');
    227 --       RETURN NULL;
    228 --     END
    229 --   $$;
    230 
    231 
    232 -- ALTER FUNCTION public.album_user_after_insert() OWNER TO postgres;
    233 
    234 --
    235 -- Name: album_user_delete(); Type: FUNCTION; Schema: public; Owner: postgres
    236 --
    237 
    238 -- CREATE FUNCTION public.album_user_delete() RETURNS trigger
    239 --     LANGUAGE plpgsql
    240 --     AS $$
    241 --     BEGIN
    242 --       DELETE FROM "album"
    243 --       WHERE "album"."id" = OLD."albumId"
    244 --       AND NOT EXISTS (SELECT "albumId" FROM "album_user" WHERE "album_user"."albumId" = "album"."id" AND "album_user"."role" = 'owner');
    245 
    246 --       RETURN NULL;
    247 --     END
    248 --   $$;
    249 
    250 
    251 -- ALTER FUNCTION public.album_user_delete() OWNER TO postgres;
    252 
    253 --
    254 -- Name: album_user_delete_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    255 --
    256 
    257 -- CREATE FUNCTION public.album_user_delete_audit() RETURNS trigger
    258 --     LANGUAGE plpgsql
    259 --     AS $$
    260 --     BEGIN
    261 --       INSERT INTO album_audit ("albumId", "userId")
    262 --       SELECT "albumId", "userId"
    263 --       FROM OLD;
    264 
    265 --       IF pg_trigger_depth() = 1 THEN
    266 --         INSERT INTO album_user_audit ("albumId", "userId")
    267 --         SELECT "albumId", "userId"
    268 --         FROM OLD;
    269 --       END IF;
    270 
    271 --       RETURN NULL;
    272 --     END
    273 --   $$;
    274 
    275 
    276 -- ALTER FUNCTION public.album_user_delete_audit() OWNER TO postgres;
    277 
    278 --
    279 -- Name: asset_delete_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    280 --
    281 
    282 -- CREATE FUNCTION public.asset_delete_audit() RETURNS trigger
    283 --     LANGUAGE plpgsql
    284 --     AS $$
    285 --     BEGIN
    286 --       INSERT INTO asset_audit ("assetId", "ownerId")
    287 --       SELECT "id", "ownerId"
    288 --       FROM OLD;
    289 --       RETURN NULL;
    290 --     END
    291 --   $$;
    292 
    293 
    294 -- ALTER FUNCTION public.asset_delete_audit() OWNER TO postgres;
    295 
    296 --
    297 -- Name: asset_edit_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    298 --
    299 
    300 -- CREATE FUNCTION public.asset_edit_audit() RETURNS trigger
    301 --     LANGUAGE plpgsql
    302 --     AS $$
    303 --     BEGIN
    304 --       INSERT INTO asset_edit_audit ("editId", "assetId")
    305 --       SELECT "id", "assetId"
    306 --       FROM OLD;
    307 --       RETURN NULL;
    308 --     END
    309 --   $$;
    310 
    311 
    312 -- ALTER FUNCTION public.asset_edit_audit() OWNER TO postgres;
    313 
    314 --
    315 -- Name: asset_edit_delete(); Type: FUNCTION; Schema: public; Owner: postgres
    316 --
    317 
    318 -- CREATE FUNCTION public.asset_edit_delete() RETURNS trigger
    319 --     LANGUAGE plpgsql
    320 --     AS $$
    321 --     BEGIN
    322 --       UPDATE asset
    323 --       SET "isEdited" = false
    324 --       FROM deleted_edit
    325 --       WHERE asset.id = deleted_edit."assetId" AND asset."isEdited"
    326 --         AND NOT EXISTS (SELECT FROM asset_edit edit WHERE edit."assetId" = asset.id);
    327 --       RETURN NULL;
    328 --     END
    329 --   $$;
    330 
    331 
    332 -- ALTER FUNCTION public.asset_edit_delete() OWNER TO postgres;
    333 
    334 --
    335 -- Name: asset_edit_insert(); Type: FUNCTION; Schema: public; Owner: postgres
    336 --
    337 
    338 -- CREATE FUNCTION public.asset_edit_insert() RETURNS trigger
    339 --     LANGUAGE plpgsql
    340 --     AS $$
    341 --     BEGIN
    342 --       UPDATE asset
    343 --       SET "isEdited" = true
    344 --       FROM inserted_edit
    345 --       WHERE asset.id = inserted_edit."assetId" AND NOT asset."isEdited";
    346 --       RETURN NULL;
    347 --     END
    348 --   $$;
    349 
    350 
    351 -- ALTER FUNCTION public.asset_edit_insert() OWNER TO postgres;
    352 
    353 --
    354 -- Name: asset_face_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    355 --
    356 
    357 -- CREATE FUNCTION public.asset_face_audit() RETURNS trigger
    358 --     LANGUAGE plpgsql
    359 --     AS $$
    360 --     BEGIN
    361 --       INSERT INTO asset_face_audit ("assetFaceId", "assetId")
    362 --       SELECT "id", "assetId"
    363 --       FROM OLD;
    364 --       RETURN NULL;
    365 --     END
    366 --   $$;
    367 
    368 
    369 -- ALTER FUNCTION public.asset_face_audit() OWNER TO postgres;
    370 
    371 --
    372 -- Name: asset_metadata_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    373 --
    374 
    375 -- CREATE FUNCTION public.asset_metadata_audit() RETURNS trigger
    376 --     LANGUAGE plpgsql
    377 --     AS $$
    378 --     BEGIN
    379 --       INSERT INTO asset_metadata_audit ("assetId", "key")
    380 --       SELECT "assetId", "key"
    381 --       FROM OLD;
    382 --       RETURN NULL;
    383 --     END
    384 --   $$;
    385 
    386 
    387 -- ALTER FUNCTION public.asset_metadata_audit() OWNER TO postgres;
    388 
    389 --
    390 -- Name: asset_ocr_delete_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    391 --
    392 
    393 -- CREATE FUNCTION public.asset_ocr_delete_audit() RETURNS trigger
    394 --     LANGUAGE plpgsql
    395 --     AS $$
    396 --     BEGIN
    397 --       INSERT INTO asset_ocr_audit ("assetId")
    398 --       SELECT "assetId"
    399 --       FROM OLD;
    400 --       RETURN NULL;
    401 --     END
    402 --   $$;
    403 
    404 
    405 -- ALTER FUNCTION public.asset_ocr_delete_audit() OWNER TO postgres;
    406 
    407 --
    408 -- Name: f_concat_ws(text, text[]); Type: FUNCTION; Schema: public; Owner: postgres
    409 --
    410 
    411 -- CREATE FUNCTION public.f_concat_ws(text, text[]) RETURNS text
    412 --     LANGUAGE sql IMMUTABLE PARALLEL SAFE
    413 --     AS $_$SELECT array_to_string($2, $1)$_$;
    414 
    415 
    416 -- ALTER FUNCTION public.f_concat_ws(text, text[]) OWNER TO postgres;
    417 
    418 --
    419 -- Name: f_unaccent(text); Type: FUNCTION; Schema: public; Owner: postgres
    420 --
    421 
    422 -- CREATE FUNCTION public.f_unaccent(text) RETURNS text
    423 --     LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
    424 --     RETURN public.unaccent('public.unaccent'::regdictionary, $1);
    425 
    426 
    427 -- ALTER FUNCTION public.f_unaccent(text) OWNER TO postgres;
    428 
    429 --
    430 -- Name: immich_uuid_v7(timestamp with time zone); Type: FUNCTION; Schema: public; Owner: postgres
    431 --
    432 
    433 -- CREATE FUNCTION public.immich_uuid_v7(p_timestamp timestamp with time zone DEFAULT clock_timestamp()) RETURNS uuid
    434 --     LANGUAGE sql
    435 --     AS $$
    436 --     select encode(
    437 --       set_bit(
    438 --         set_bit(
    439 --           overlay(uuid_send(gen_random_uuid())
    440 --                   placing substring(int8send(floor(extract(epoch from p_timestamp) * 1000)::bigint) from 3)
    441 --                   from 1 for 6
    442 --           ),
    443 --           52, 1
    444 --         ),
    445 --         53, 1
    446 --       ),
    447 --       'hex')::uuid;
    448 --   $$;
    449 
    450 
    451 -- ALTER FUNCTION public.immich_uuid_v7(p_timestamp timestamp with time zone) OWNER TO postgres;
    452 
    453 --
    454 -- Name: ll_to_earth_public(double precision, double precision); Type: FUNCTION; Schema: public; Owner: postgres
    455 --
    456 
    457 -- CREATE FUNCTION public.ll_to_earth_public(latitude double precision, longitude double precision) RETURNS public.earth
    458 --     LANGUAGE sql IMMUTABLE STRICT PARALLEL SAFE
    459 --     AS $$
    460 --     SELECT public.cube(public.cube(public.cube(public.earth()*cos(radians(latitude))*cos(radians(longitude))),public.earth()*cos(radians(latitude))*sin(radians(longitude))),public.earth()*sin(radians(latitude)))::public.earth
    461 --   $$;
    462 
    463 
    464 -- ALTER FUNCTION public.ll_to_earth_public(latitude double precision, longitude double precision) OWNER TO postgres;
    465 
    466 --
    467 -- Name: memory_asset_delete_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    468 --
    469 
    470 -- CREATE FUNCTION public.memory_asset_delete_audit() RETURNS trigger
    471 --     LANGUAGE plpgsql
    472 --     AS $$
    473 --     BEGIN
    474 --       INSERT INTO memory_asset_audit ("memoryId", "assetId")
    475 --       SELECT "memoriesId", "assetId" FROM OLD
    476 --       WHERE "memoriesId" IN (SELECT "id" FROM memory WHERE "id" IN (SELECT "memoriesId" FROM OLD));
    477 --       RETURN NULL;
    478 --     END
    479 --   $$;
    480 
    481 
    482 -- ALTER FUNCTION public.memory_asset_delete_audit() OWNER TO postgres;
    483 
    484 --
    485 -- Name: memory_delete_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    486 --
    487 
    488 -- CREATE FUNCTION public.memory_delete_audit() RETURNS trigger
    489 --     LANGUAGE plpgsql
    490 --     AS $$
    491 --     BEGIN
    492 --       INSERT INTO memory_audit ("memoryId", "userId")
    493 --       SELECT "id", "ownerId"
    494 --       FROM OLD;
    495 --       RETURN NULL;
    496 --     END
    497 --   $$;
    498 
    499 
    500 -- ALTER FUNCTION public.memory_delete_audit() OWNER TO postgres;
    501 
    502 --
    503 -- Name: partner_delete_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    504 --
    505 
    506 -- CREATE FUNCTION public.partner_delete_audit() RETURNS trigger
    507 --     LANGUAGE plpgsql
    508 --     AS $$
    509 --     BEGIN
    510 --       INSERT INTO partner_audit ("sharedById", "sharedWithId")
    511 --       SELECT "sharedById", "sharedWithId"
    512 --       FROM OLD;
    513 --       RETURN NULL;
    514 --     END
    515 --   $$;
    516 
    517 
    518 -- ALTER FUNCTION public.partner_delete_audit() OWNER TO postgres;
    519 
    520 --
    521 -- Name: person_delete_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    522 --
    523 
    524 -- CREATE FUNCTION public.person_delete_audit() RETURNS trigger
    525 --     LANGUAGE plpgsql
    526 --     AS $$
    527 --     BEGIN
    528 --       INSERT INTO person_audit ("personGroupId", "ownerId")
    529 --       SELECT "personGroupId", "ownerId"
    530 --       FROM OLD;
    531 --       RETURN NULL;
    532 --     END
    533 --   $$;
    534 
    535 
    536 -- ALTER FUNCTION public.person_delete_audit() OWNER TO postgres;
    537 
    538 --
    539 -- Name: person_group_delete_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    540 --
    541 
    542 -- CREATE FUNCTION public.person_group_delete_audit() RETURNS trigger
    543 --     LANGUAGE plpgsql
    544 --     AS $$
    545 --     BEGIN
    546 --       INSERT INTO person_group_audit ("personGroupId", "clusterGroupId")
    547 --       SELECT "id", "clusterGroupId"
    548 --       FROM OLD;
    549 --       RETURN NULL;
    550 --     END
    551 --   $$;
    552 
    553 
    554 -- ALTER FUNCTION public.person_group_delete_audit() OWNER TO postgres;
    555 
    556 --
    557 -- Name: stack_delete_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    558 --
    559 
    560 -- CREATE FUNCTION public.stack_delete_audit() RETURNS trigger
    561 --     LANGUAGE plpgsql
    562 --     AS $$
    563 --     BEGIN
    564 --       INSERT INTO stack_audit ("stackId", "userId")
    565 --       SELECT "id", "ownerId"
    566 --       FROM OLD;
    567 --       RETURN NULL;
    568 --     END
    569 --   $$;
    570 
    571 
    572 -- ALTER FUNCTION public.stack_delete_audit() OWNER TO postgres;
    573 
    574 --
    575 -- Name: updated_at(); Type: FUNCTION; Schema: public; Owner: postgres
    576 --
    577 
    578 -- CREATE FUNCTION public.updated_at() RETURNS trigger
    579 --     LANGUAGE plpgsql
    580 --     AS $$
    581 --     DECLARE
    582 --         clock_timestamp TIMESTAMP := clock_timestamp();
    583 --     BEGIN
    584 --         new."updatedAt" = clock_timestamp;
    585 --         new."updateId" = immich_uuid_v7(clock_timestamp);
    586 --         return new;
    587 --     END;
    588 --   $$;
    589 
    590 
    591 -- ALTER FUNCTION public.updated_at() OWNER TO postgres;
    592 
    593 --
    594 -- Name: user_delete_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    595 --
    596 
    597 -- CREATE FUNCTION public.user_delete_audit() RETURNS trigger
    598 --     LANGUAGE plpgsql
    599 --     AS $$
    600 --     BEGIN
    601 --       INSERT INTO user_audit ("userId")
    602 --       SELECT "id"
    603 --       FROM OLD;
    604 --       RETURN NULL;
    605 --     END
    606 --   $$;
    607 
    608 
    609 -- ALTER FUNCTION public.user_delete_audit() OWNER TO postgres;
    610 
    611 --
    612 -- Name: user_metadata_audit(); Type: FUNCTION; Schema: public; Owner: postgres
    613 --
    614 
    615 -- CREATE FUNCTION public.user_metadata_audit() RETURNS trigger
    616 --     LANGUAGE plpgsql
    617 --     AS $$
    618 --     BEGIN
    619 --       INSERT INTO user_metadata_audit ("userId", "key")
    620 --       SELECT "userId", "key"
    621 --       FROM OLD;
    622 --       RETURN NULL;
    623 --     END
    624 --   $$;
    625 
    626 
    627 -- ALTER FUNCTION public.user_metadata_audit() OWNER TO postgres;
    628 
    629 -- SET default_tablespace = '';
    630 
    631 -- SET default_table_access_method = heap;
    632 
    633 --
    634 -- Name: activity; Type: TABLE; Schema: public; Owner: postgres
    635 --
    636 
    637 CREATE TABLE activity (
    638     id uuid NOT NULL, -- DEFAULT uuid_generate_v4() 
    639     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    640     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    641     "albumId" uuid NOT NULL,
    642     "userId" uuid NOT NULL,
    643     "assetId" uuid,
    644     comment text,
    645     "isLiked" boolean DEFAULT false NOT NULL,
    646     "updateId" uuid NOT NULL, -- DEFAULT immich_uuid_v7() 
    647     CONSTRAINT activity_like_check CHECK ((((comment IS NULL) AND ("isLiked" = true)) OR ((comment IS NOT NULL) AND ("isLiked" = false))))
    648 );  
    649 
    650 
    651 -- ALTER TABLE public.activity OWNER TO postgres;
    652 
    653 --
    654 -- Name: album; Type: TABLE; Schema: public; Owner: postgres
    655 --
    656 
    657 CREATE TABLE album (
    658     id uuid NOT NULL, --DEFAULT public.uuid_generate_v4() 
    659     "albumName" text DEFAULT 'Untitled Album' NOT NULL,
    660     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    661     "albumThumbnailAssetId" uuid,
    662     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    663     description text,
    664     "deletedAt" timestamp with time zone,
    665     "isActivityEnabled" boolean DEFAULT true NOT NULL,
    666     "order" text DEFAULT 'desc' NOT NULL,
    667     "updateId" uuid NOT NULL -- DEFAULT public.immich_uuid_v7()
    668 );
    669 
    670 
    671 -- ALTER TABLE public.album OWNER TO postgres;
    672 
    673 --
    674 -- Name: COLUMN album."albumThumbnailAssetId"; Type: COMMENT; Schema: public; Owner: postgres
    675 --
    676 
    677 -- COMMENT ON COLUMN album."albumThumbnailAssetId" IS 'Asset ID to be used as thumbnail';
    678 
    679 
    680 --
    681 -- Name: album_asset; Type: TABLE; Schema: public; Owner: postgres
    682 --
    683 
    684 CREATE TABLE album_asset (
    685     "albumId" uuid NOT NULL,
    686     "assetId" uuid NOT NULL,
    687     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    688     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    689     "updateId" uuid NOT NULL -- DEFAULT public.immich_uuid_v7()
    690 );
    691 
    692 
    693 -- ALTER TABLE public.album_asset OWNER TO postgres;
    694 
    695 --
    696 -- Name: album_asset_audit; Type: TABLE; Schema: public; Owner: postgres
    697 --
    698 
    699 CREATE TABLE album_asset_audit (
    700     id uuid NOT NULL, -- DEFAULT public.immich_uuid_v7() 
    701     "albumId" uuid NOT NULL,
    702     "assetId" uuid NOT NULL,
    703     "deletedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL
    704 );
    705 
    706 
    707 -- ALTER TABLE public.album_asset_audit OWNER TO postgres;
    708 
    709 --
    710 -- Name: album_audit; Type: TABLE; Schema: public; Owner: postgres
    711 --
    712 
    713 CREATE TABLE album_audit (
    714     id uuid NOT NULL, -- DEFAULT immich_uuid_v7()
    715     "albumId" uuid NOT NULL,
    716     "userId" uuid NOT NULL,
    717     "deletedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL
    718 );
    719 
    720 
    721 -- ALTER TABLE public.album_audit OWNER TO postgres;
    722 
    723 --
    724 -- Name: album_user; Type: TABLE; Schema: public; Owner: postgres
    725 --
    726 
    727 CREATE TABLE album_user (
    728     "albumId" uuid NOT NULL,
    729     "userId" uuid NOT NULL,
    730     role text DEFAULT 'editor' NOT NULL,
    731     "updateId" uuid NOT NULL, --  DEFAULT public.immich_uuid_v7() 
    732     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    733     "createId" uuid NOT NULL, --  DEFAULT public.immich_uuid_v7()
    734     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    735     CONSTRAINT role_check CHECK (role = "editor" OR role = "owner" OR role = "viewer")
    736 );
    737 
    738 
    739 -- ALTER TABLE public.album_user OWNER TO postgres;
    740 
    741 --
    742 -- Name: album_user_audit; Type: TABLE; Schema: public; Owner: postgres
    743 --
    744 
    745 CREATE TABLE album_user_audit (
    746     id uuid NOT NULL, -- DEFAULT public.immich_uuid_v7() 
    747     "albumId" uuid NOT NULL,
    748     "userId" uuid NOT NULL,
    749     "deletedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL
    750 );
    751 
    752 
    753 -- ALTER TABLE public.album_user_audit OWNER TO postgres;
    754 
    755 --
    756 -- Name: api_key; Type: TABLE; Schema: public; Owner: postgres
    757 --
    758 
    759 CREATE TABLE api_key (
    760     name text NOT NULL,
    761     key bytea NOT NULL,
    762     "userId" uuid NOT NULL,
    763     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    764     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    765     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
    766     permissions character varying[] NOT NULL,
    767     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL
    768 );
    769 
    770 
    771 ALTER TABLE public.api_key OWNER TO postgres;
    772 
    773 --
    774 -- Name: asset; Type: TABLE; Schema: public; Owner: postgres
    775 --
    776 
    777 CREATE TABLE public.asset (
    778     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
    779     "ownerId" uuid NOT NULL,
    780     type character varying NOT NULL,
    781     "originalPath" character varying NOT NULL,
    782     "fileCreatedAt" timestamp with time zone NOT NULL,
    783     "fileModifiedAt" timestamp with time zone NOT NULL,
    784     "isFavorite" boolean DEFAULT false NOT NULL,
    785     duration integer,
    786     checksum bytea NOT NULL,
    787     "livePhotoVideoId" uuid,
    788     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    789     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    790     "originalFileName" character varying NOT NULL,
    791     thumbhash bytea,
    792     "isOffline" boolean DEFAULT false NOT NULL,
    793     "libraryId" uuid,
    794     "isExternal" boolean DEFAULT false NOT NULL,
    795     "deletedAt" timestamp with time zone,
    796     "localDateTime" timestamp with time zone NOT NULL,
    797     "stackId" uuid,
    798     "duplicateId" uuid,
    799     status public.assets_status_enum DEFAULT 'active'::public.assets_status_enum NOT NULL,
    800     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
    801     visibility public.asset_visibility_enum DEFAULT 'timeline'::public.asset_visibility_enum NOT NULL,
    802     width integer,
    803     height integer,
    804     "isEdited" boolean DEFAULT false NOT NULL,
    805     "checksumAlgorithm" public.asset_checksum_algorithm_enum NOT NULL
    806 );
    807 
    808 
    809 ALTER TABLE public.asset OWNER TO postgres;
    810 
    811 --
    812 -- Name: asset_audio; Type: TABLE; Schema: public; Owner: postgres
    813 --
    814 
    815 CREATE TABLE public.asset_audio (
    816     "assetId" uuid NOT NULL,
    817     bitrate integer NOT NULL,
    818     index smallint NOT NULL,
    819     profile smallint,
    820     "codecName" text NOT NULL
    821 );
    822 
    823 
    824 ALTER TABLE public.asset_audio OWNER TO postgres;
    825 
    826 --
    827 -- Name: asset_audit; Type: TABLE; Schema: public; Owner: postgres
    828 --
    829 
    830 CREATE TABLE public.asset_audit (
    831     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
    832     "assetId" uuid NOT NULL,
    833     "ownerId" uuid NOT NULL,
    834     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL
    835 );
    836 
    837 
    838 ALTER TABLE public.asset_audit OWNER TO postgres;
    839 
    840 --
    841 -- Name: asset_edit; Type: TABLE; Schema: public; Owner: postgres
    842 --
    843 
    844 CREATE TABLE public.asset_edit (
    845     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
    846     "assetId" uuid NOT NULL,
    847     action character varying NOT NULL,
    848     parameters jsonb NOT NULL,
    849     sequence integer NOT NULL,
    850     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    851     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL
    852 );
    853 
    854 
    855 ALTER TABLE public.asset_edit OWNER TO postgres;
    856 
    857 --
    858 -- Name: asset_edit_audit; Type: TABLE; Schema: public; Owner: postgres
    859 --
    860 
    861 CREATE TABLE public.asset_edit_audit (
    862     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
    863     "editId" uuid NOT NULL,
    864     "assetId" uuid NOT NULL,
    865     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL
    866 );
    867 
    868 
    869 ALTER TABLE public.asset_edit_audit OWNER TO postgres;
    870 
    871 --
    872 -- Name: asset_exif; Type: TABLE; Schema: public; Owner: postgres
    873 --
    874 
    875 CREATE TABLE public.asset_exif (
    876     "assetId" uuid NOT NULL,
    877     make character varying,
    878     model character varying,
    879     "exifImageWidth" integer,
    880     "exifImageHeight" integer,
    881     "fileSizeInByte" bigint,
    882     orientation character varying,
    883     "dateTimeOriginal" timestamp with time zone,
    884     "modifyDate" timestamp with time zone,
    885     "lensModel" character varying,
    886     "fNumber" double precision,
    887     "focalLength" double precision,
    888     iso integer,
    889     latitude double precision,
    890     longitude double precision,
    891     city character varying,
    892     state character varying,
    893     country character varying,
    894     description text DEFAULT ''::text NOT NULL,
    895     fps double precision,
    896     "exposureTime" character varying,
    897     "livePhotoCID" character varying,
    898     "timeZone" character varying,
    899     "projectionType" character varying,
    900     "profileDescription" character varying,
    901     colorspace character varying,
    902     "bitsPerSample" integer,
    903     "autoStackId" character varying,
    904     rating integer,
    905     "updatedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL,
    906     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
    907     "lockedProperties" character varying[],
    908     tags character varying[]
    909 );
    910 
    911 
    912 ALTER TABLE public.asset_exif OWNER TO postgres;
    913 
    914 --
    915 -- Name: asset_face; Type: TABLE; Schema: public; Owner: postgres
    916 --
    917 
    918 CREATE TABLE public.asset_face (
    919     "assetId" uuid NOT NULL,
    920     "personGroupId" uuid,
    921     "imageWidth" integer DEFAULT 0 NOT NULL,
    922     "imageHeight" integer DEFAULT 0 NOT NULL,
    923     "boundingBoxX1" integer DEFAULT 0 NOT NULL,
    924     "boundingBoxY1" integer DEFAULT 0 NOT NULL,
    925     "boundingBoxX2" integer DEFAULT 0 NOT NULL,
    926     "boundingBoxY2" integer DEFAULT 0 NOT NULL,
    927     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
    928     "sourceType" public.sourcetype DEFAULT 'machine-learning'::public.sourcetype NOT NULL,
    929     "deletedAt" timestamp with time zone,
    930     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    931     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
    932     "isVisible" boolean DEFAULT true NOT NULL
    933 );
    934 
    935 
    936 ALTER TABLE public.asset_face OWNER TO postgres;
    937 
    938 --
    939 -- Name: asset_face_audit; Type: TABLE; Schema: public; Owner: postgres
    940 --
    941 
    942 CREATE TABLE public.asset_face_audit (
    943     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
    944     "assetFaceId" uuid NOT NULL,
    945     "assetId" uuid NOT NULL,
    946     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL
    947 );
    948 
    949 
    950 ALTER TABLE public.asset_face_audit OWNER TO postgres;
    951 
    952 --
    953 -- Name: asset_file; Type: TABLE; Schema: public; Owner: postgres
    954 --
    955 
    956 CREATE TABLE public.asset_file (
    957     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
    958     "assetId" uuid NOT NULL,
    959     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    960     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
    961     type character varying NOT NULL,
    962     path character varying NOT NULL,
    963     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
    964     "isEdited" boolean DEFAULT false NOT NULL,
    965     "isProgressive" boolean DEFAULT false NOT NULL,
    966     "isTransparent" boolean DEFAULT false NOT NULL
    967 );
    968 
    969 
    970 ALTER TABLE public.asset_file OWNER TO postgres;
    971 
    972 --
    973 -- Name: asset_job_status; Type: TABLE; Schema: public; Owner: postgres
    974 --
    975 
    976 CREATE TABLE public.asset_job_status (
    977     "assetId" uuid NOT NULL,
    978     "facesRecognizedAt" timestamp with time zone,
    979     "metadataExtractedAt" timestamp with time zone,
    980     "duplicatesDetectedAt" timestamp with time zone,
    981     "ocrAt" timestamp with time zone
    982 );
    983 
    984 
    985 ALTER TABLE public.asset_job_status OWNER TO postgres;
    986 
    987 --
    988 -- Name: asset_keyframe; Type: TABLE; Schema: public; Owner: postgres
    989 --
    990 
    991 CREATE TABLE public.asset_keyframe (
    992     "assetId" uuid NOT NULL,
    993     pts integer[] NOT NULL,
    994     "accDuration" integer[] NOT NULL,
    995     "ownDuration" integer[] NOT NULL,
    996     "totalDuration" integer NOT NULL,
    997     "packetCount" integer NOT NULL,
    998     "outputFrames" integer NOT NULL
    999 );
   1000 
   1001 
   1002 ALTER TABLE public.asset_keyframe OWNER TO postgres;
   1003 
   1004 --
   1005 -- Name: asset_metadata; Type: TABLE; Schema: public; Owner: postgres
   1006 --
   1007 
   1008 CREATE TABLE public.asset_metadata (
   1009     "assetId" uuid NOT NULL,
   1010     key character varying NOT NULL,
   1011     value jsonb NOT NULL,
   1012     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1013     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL
   1014 );
   1015 
   1016 
   1017 ALTER TABLE public.asset_metadata OWNER TO postgres;
   1018 
   1019 --
   1020 -- Name: asset_metadata_audit; Type: TABLE; Schema: public; Owner: postgres
   1021 --
   1022 
   1023 CREATE TABLE public.asset_metadata_audit (
   1024     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1025     "assetId" uuid NOT NULL,
   1026     key character varying NOT NULL,
   1027     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL
   1028 );
   1029 
   1030 
   1031 ALTER TABLE public.asset_metadata_audit OWNER TO postgres;
   1032 
   1033 --
   1034 -- Name: asset_ocr; Type: TABLE; Schema: public; Owner: postgres
   1035 --
   1036 
   1037 CREATE TABLE public.asset_ocr (
   1038     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1039     "assetId" uuid NOT NULL,
   1040     x1 real NOT NULL,
   1041     y1 real NOT NULL,
   1042     x2 real NOT NULL,
   1043     y2 real NOT NULL,
   1044     x3 real NOT NULL,
   1045     y3 real NOT NULL,
   1046     x4 real NOT NULL,
   1047     y4 real NOT NULL,
   1048     "boxScore" real NOT NULL,
   1049     "textScore" real NOT NULL,
   1050     text text NOT NULL,
   1051     "isVisible" boolean DEFAULT true NOT NULL,
   1052     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1053     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL
   1054 );
   1055 
   1056 
   1057 ALTER TABLE public.asset_ocr OWNER TO postgres;
   1058 
   1059 --
   1060 -- Name: asset_ocr_audit; Type: TABLE; Schema: public; Owner: postgres
   1061 --
   1062 
   1063 CREATE TABLE public.asset_ocr_audit (
   1064     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1065     "assetId" uuid NOT NULL,
   1066     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL
   1067 );
   1068 
   1069 
   1070 ALTER TABLE public.asset_ocr_audit OWNER TO postgres;
   1071 
   1072 --
   1073 -- Name: asset_video; Type: TABLE; Schema: public; Owner: postgres
   1074 --
   1075 
   1076 CREATE TABLE public.asset_video (
   1077     "assetId" uuid NOT NULL,
   1078     bitrate integer NOT NULL,
   1079     "frameCount" integer NOT NULL,
   1080     "timeBase" integer NOT NULL,
   1081     index smallint NOT NULL,
   1082     profile smallint,
   1083     level smallint,
   1084     "colorPrimaries" smallint NOT NULL,
   1085     "colorTransfer" smallint NOT NULL,
   1086     "colorMatrix" smallint NOT NULL,
   1087     "dvProfile" smallint,
   1088     "dvLevel" smallint,
   1089     "dvBlSignalCompatibilityId" smallint,
   1090     "codecName" text NOT NULL,
   1091     "formatName" text NOT NULL,
   1092     "formatLongName" text NOT NULL,
   1093     "pixelFormat" text NOT NULL
   1094 );
   1095 
   1096 
   1097 ALTER TABLE public.asset_video OWNER TO postgres;
   1098 
   1099 --
   1100 -- Name: cluster_group; Type: TABLE; Schema: public; Owner: postgres
   1101 --
   1102 
   1103 CREATE TABLE public.cluster_group (
   1104     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1105     name character varying,
   1106     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1107     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1108     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL
   1109 );
   1110 
   1111 
   1112 ALTER TABLE public.cluster_group OWNER TO postgres;
   1113 
   1114 --
   1115 -- Name: cluster_group_request; Type: TABLE; Schema: public; Owner: postgres
   1116 --
   1117 
   1118 CREATE TABLE public.cluster_group_request (
   1119     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1120     "clusterGroupId" uuid NOT NULL,
   1121     "userId" uuid NOT NULL,
   1122     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL
   1123 );
   1124 
   1125 
   1126 ALTER TABLE public.cluster_group_request OWNER TO postgres;
   1127 
   1128 --
   1129 -- Name: face_search; Type: TABLE; Schema: public; Owner: postgres
   1130 --
   1131 
   1132 CREATE TABLE public.face_search (
   1133     "faceId" uuid NOT NULL,
   1134     embedding public.vector(512) NOT NULL
   1135 );
   1136 
   1137 
   1138 ALTER TABLE public.face_search OWNER TO postgres;
   1139 
   1140 --
   1141 -- Name: geodata_places; Type: TABLE; Schema: public; Owner: postgres
   1142 --
   1143 
   1144 CREATE TABLE public.geodata_places (
   1145     id integer NOT NULL,
   1146     name character varying(200) NOT NULL,
   1147     longitude double precision NOT NULL,
   1148     latitude double precision NOT NULL,
   1149     "countryCode" character(2) NOT NULL,
   1150     "admin1Code" character varying(20),
   1151     "admin2Code" character varying(80),
   1152     "modificationDate" date NOT NULL,
   1153     "admin1Name" character varying,
   1154     "admin2Name" character varying,
   1155     "alternateNames" character varying
   1156 );
   1157 
   1158 
   1159 ALTER TABLE public.geodata_places OWNER TO postgres;
   1160 
   1161 --
   1162 -- Name: integrity_report; Type: TABLE; Schema: public; Owner: postgres
   1163 --
   1164 
   1165 CREATE TABLE public.integrity_report (
   1166     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1167     type character varying NOT NULL,
   1168     path character varying NOT NULL,
   1169     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1170     "assetId" uuid,
   1171     "fileAssetId" uuid
   1172 );
   1173 
   1174 
   1175 ALTER TABLE public.integrity_report OWNER TO postgres;
   1176 
   1177 --
   1178 -- Name: kysely_migrations; Type: TABLE; Schema: public; Owner: postgres
   1179 --
   1180 
   1181 CREATE TABLE public.kysely_migrations (
   1182     name character varying(255) NOT NULL,
   1183     "timestamp" character varying(255) NOT NULL
   1184 );
   1185 
   1186 
   1187 ALTER TABLE public.kysely_migrations OWNER TO postgres;
   1188 
   1189 --
   1190 -- Name: kysely_migrations_lock; Type: TABLE; Schema: public; Owner: postgres
   1191 --
   1192 
   1193 CREATE TABLE public.kysely_migrations_lock (
   1194     id character varying(255) NOT NULL,
   1195     is_locked integer DEFAULT 0 NOT NULL
   1196 );
   1197 
   1198 
   1199 ALTER TABLE public.kysely_migrations_lock OWNER TO postgres;
   1200 
   1201 --
   1202 -- Name: library; Type: TABLE; Schema: public; Owner: postgres
   1203 --
   1204 
   1205 CREATE TABLE public.library (
   1206     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1207     name character varying NOT NULL,
   1208     "ownerId" uuid NOT NULL,
   1209     "importPaths" text[] NOT NULL,
   1210     "exclusionPatterns" text[] NOT NULL,
   1211     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1212     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1213     "deletedAt" timestamp with time zone,
   1214     "refreshedAt" timestamp with time zone,
   1215     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL
   1216 );
   1217 
   1218 
   1219 ALTER TABLE public.library OWNER TO postgres;
   1220 
   1221 --
   1222 -- Name: memory; Type: TABLE; Schema: public; Owner: postgres
   1223 --
   1224 
   1225 CREATE TABLE public.memory (
   1226     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1227     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1228     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1229     "deletedAt" timestamp with time zone,
   1230     "ownerId" uuid NOT NULL,
   1231     type character varying NOT NULL,
   1232     data jsonb NOT NULL,
   1233     "isSaved" boolean DEFAULT false NOT NULL,
   1234     "memoryAt" timestamp with time zone NOT NULL,
   1235     "seenAt" timestamp with time zone,
   1236     "showAt" timestamp with time zone,
   1237     "hideAt" timestamp with time zone,
   1238     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL
   1239 );
   1240 
   1241 
   1242 ALTER TABLE public.memory OWNER TO postgres;
   1243 
   1244 --
   1245 -- Name: memory_asset; Type: TABLE; Schema: public; Owner: postgres
   1246 --
   1247 
   1248 CREATE TABLE public.memory_asset (
   1249     "memoriesId" uuid NOT NULL,
   1250     "assetId" uuid NOT NULL,
   1251     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1252     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1253     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL
   1254 );
   1255 
   1256 
   1257 ALTER TABLE public.memory_asset OWNER TO postgres;
   1258 
   1259 --
   1260 -- Name: memory_asset_audit; Type: TABLE; Schema: public; Owner: postgres
   1261 --
   1262 
   1263 CREATE TABLE public.memory_asset_audit (
   1264     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1265     "memoryId" uuid NOT NULL,
   1266     "assetId" uuid NOT NULL,
   1267     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL
   1268 );
   1269 
   1270 
   1271 ALTER TABLE public.memory_asset_audit OWNER TO postgres;
   1272 
   1273 --
   1274 -- Name: memory_audit; Type: TABLE; Schema: public; Owner: postgres
   1275 --
   1276 
   1277 CREATE TABLE public.memory_audit (
   1278     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1279     "memoryId" uuid NOT NULL,
   1280     "userId" uuid NOT NULL,
   1281     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL
   1282 );
   1283 
   1284 
   1285 ALTER TABLE public.memory_audit OWNER TO postgres;
   1286 
   1287 --
   1288 -- Name: migration_overrides; Type: TABLE; Schema: public; Owner: postgres
   1289 --
   1290 
   1291 CREATE TABLE public.migration_overrides (
   1292     name character varying NOT NULL,
   1293     value jsonb NOT NULL
   1294 );
   1295 
   1296 
   1297 ALTER TABLE public.migration_overrides OWNER TO postgres;
   1298 
   1299 --
   1300 -- Name: move_history; Type: TABLE; Schema: public; Owner: postgres
   1301 --
   1302 
   1303 CREATE TABLE public.move_history (
   1304     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1305     "entityId" uuid NOT NULL,
   1306     "pathType" character varying NOT NULL,
   1307     "oldPath" character varying NOT NULL,
   1308     "newPath" character varying NOT NULL
   1309 );
   1310 
   1311 
   1312 ALTER TABLE public.move_history OWNER TO postgres;
   1313 
   1314 --
   1315 -- Name: naturalearth_countries; Type: TABLE; Schema: public; Owner: postgres
   1316 --
   1317 
   1318 CREATE TABLE public.naturalearth_countries (
   1319     id integer NOT NULL,
   1320     admin character varying(50) NOT NULL,
   1321     admin_a3 character varying(3) NOT NULL,
   1322     type character varying(50) NOT NULL,
   1323     coordinates polygon NOT NULL
   1324 );
   1325 
   1326 
   1327 ALTER TABLE public.naturalearth_countries OWNER TO postgres;
   1328 
   1329 --
   1330 -- Name: naturalearth_countries_tmp_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
   1331 --
   1332 
   1333 ALTER TABLE public.naturalearth_countries ALTER COLUMN id ADD GENERATED ALWAYS AS IDENTITY (
   1334     SEQUENCE NAME public.naturalearth_countries_tmp_id_seq
   1335     START WITH 1
   1336     INCREMENT BY 1
   1337     NO MINVALUE
   1338     MAXVALUE 2147483647
   1339     CACHE 1
   1340 );
   1341 
   1342 
   1343 --
   1344 -- Name: notification; Type: TABLE; Schema: public; Owner: postgres
   1345 --
   1346 
   1347 CREATE TABLE public.notification (
   1348     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1349     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1350     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1351     "deletedAt" timestamp with time zone,
   1352     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1353     "userId" uuid,
   1354     level character varying DEFAULT 'info'::character varying NOT NULL,
   1355     type character varying DEFAULT 'info'::character varying NOT NULL,
   1356     data jsonb,
   1357     title character varying NOT NULL,
   1358     description text,
   1359     "readAt" timestamp with time zone
   1360 );
   1361 
   1362 
   1363 ALTER TABLE public.notification OWNER TO postgres;
   1364 
   1365 --
   1366 -- Name: ocr_search; Type: TABLE; Schema: public; Owner: postgres
   1367 --
   1368 
   1369 CREATE TABLE public.ocr_search (
   1370     "assetId" uuid NOT NULL,
   1371     text text NOT NULL
   1372 );
   1373 
   1374 
   1375 ALTER TABLE public.ocr_search OWNER TO postgres;
   1376 
   1377 --
   1378 -- Name: partner; Type: TABLE; Schema: public; Owner: postgres
   1379 --
   1380 
   1381 CREATE TABLE public.partner (
   1382     "sharedById" uuid NOT NULL,
   1383     "sharedWithId" uuid NOT NULL,
   1384     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1385     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1386     "inTimeline" boolean DEFAULT false NOT NULL,
   1387     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1388     "createId" uuid DEFAULT public.immich_uuid_v7() NOT NULL
   1389 );
   1390 
   1391 
   1392 ALTER TABLE public.partner OWNER TO postgres;
   1393 
   1394 --
   1395 -- Name: partner_audit; Type: TABLE; Schema: public; Owner: postgres
   1396 --
   1397 
   1398 CREATE TABLE public.partner_audit (
   1399     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1400     "sharedById" uuid NOT NULL,
   1401     "sharedWithId" uuid NOT NULL,
   1402     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL
   1403 );
   1404 
   1405 
   1406 ALTER TABLE public.partner_audit OWNER TO postgres;
   1407 
   1408 --
   1409 -- Name: person; Type: TABLE; Schema: public; Owner: postgres
   1410 --
   1411 
   1412 CREATE TABLE public.person (
   1413     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1414     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1415     "ownerId" uuid NOT NULL,
   1416     name character varying DEFAULT ''::character varying NOT NULL,
   1417     "thumbnailPath" character varying DEFAULT ''::character varying NOT NULL,
   1418     "isHidden" boolean DEFAULT false NOT NULL,
   1419     "birthDate" date,
   1420     "faceAssetId" uuid,
   1421     "isFavorite" boolean DEFAULT false NOT NULL,
   1422     color character varying,
   1423     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1424     "personGroupId" uuid NOT NULL,
   1425     CONSTRAINT "person_birthDate_chk" CHECK (("birthDate" <= CURRENT_DATE))
   1426 );
   1427 
   1428 
   1429 ALTER TABLE public.person OWNER TO postgres;
   1430 
   1431 --
   1432 -- Name: person_audit; Type: TABLE; Schema: public; Owner: postgres
   1433 --
   1434 
   1435 CREATE TABLE public.person_audit (
   1436     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1437     "ownerId" uuid NOT NULL,
   1438     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL,
   1439     "personGroupId" uuid NOT NULL
   1440 );
   1441 
   1442 
   1443 ALTER TABLE public.person_audit OWNER TO postgres;
   1444 
   1445 --
   1446 -- Name: person_group; Type: TABLE; Schema: public; Owner: postgres
   1447 --
   1448 
   1449 CREATE TABLE public.person_group (
   1450     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1451     "clusterGroupId" uuid NOT NULL,
   1452     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1453     "createId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1454     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1455     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL
   1456 );
   1457 
   1458 
   1459 ALTER TABLE public.person_group OWNER TO postgres;
   1460 
   1461 --
   1462 -- Name: person_group_audit; Type: TABLE; Schema: public; Owner: postgres
   1463 --
   1464 
   1465 CREATE TABLE public.person_group_audit (
   1466     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1467     "personGroupId" uuid NOT NULL,
   1468     "clusterGroupId" uuid NOT NULL,
   1469     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL
   1470 );
   1471 
   1472 
   1473 ALTER TABLE public.person_group_audit OWNER TO postgres;
   1474 
   1475 --
   1476 -- Name: plugin; Type: TABLE; Schema: public; Owner: postgres
   1477 --
   1478 
   1479 CREATE TABLE public.plugin (
   1480     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1481     enabled boolean DEFAULT true NOT NULL,
   1482     name character varying NOT NULL,
   1483     version character varying NOT NULL,
   1484     title character varying NOT NULL,
   1485     description character varying NOT NULL,
   1486     author character varying NOT NULL,
   1487     "wasmBytes" bytea NOT NULL,
   1488     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1489     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1490     templates jsonb NOT NULL,
   1491     sha256hash bytea NOT NULL
   1492 );
   1493 
   1494 
   1495 ALTER TABLE public.plugin OWNER TO postgres;
   1496 
   1497 --
   1498 -- Name: plugin_method; Type: TABLE; Schema: public; Owner: postgres
   1499 --
   1500 
   1501 CREATE TABLE public.plugin_method (
   1502     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1503     "pluginId" uuid NOT NULL,
   1504     name character varying NOT NULL,
   1505     title character varying NOT NULL,
   1506     description character varying NOT NULL,
   1507     types character varying[] NOT NULL,
   1508     "hostFunctions" boolean DEFAULT false NOT NULL,
   1509     "uiHints" character varying[] DEFAULT '{}'::character varying[] NOT NULL,
   1510     schema jsonb,
   1511     "allowedHosts" character varying[] DEFAULT '{}'::character varying[] NOT NULL
   1512 );
   1513 
   1514 
   1515 ALTER TABLE public.plugin_method OWNER TO postgres;
   1516 
   1517 --
   1518 -- Name: session; Type: TABLE; Schema: public; Owner: postgres
   1519 --
   1520 
   1521 CREATE TABLE public.session (
   1522     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1523     token bytea NOT NULL,
   1524     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1525     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1526     "userId" uuid NOT NULL,
   1527     "deviceType" character varying DEFAULT ''::character varying NOT NULL,
   1528     "deviceOS" character varying DEFAULT ''::character varying NOT NULL,
   1529     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1530     "pinExpiresAt" timestamp with time zone,
   1531     "expiresAt" timestamp with time zone,
   1532     "parentId" uuid,
   1533     "isPendingSyncReset" boolean DEFAULT false NOT NULL,
   1534     "appVersion" character varying,
   1535     "oauthSid" character varying,
   1536     "oauthBearerToken" character varying
   1537 );
   1538 
   1539 
   1540 ALTER TABLE public.session OWNER TO postgres;
   1541 
   1542 --
   1543 -- Name: session_sync_checkpoint; Type: TABLE; Schema: public; Owner: postgres
   1544 --
   1545 
   1546 CREATE TABLE public.session_sync_checkpoint (
   1547     "sessionId" uuid NOT NULL,
   1548     type character varying NOT NULL,
   1549     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1550     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1551     ack character varying NOT NULL,
   1552     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL
   1553 );
   1554 
   1555 
   1556 ALTER TABLE public.session_sync_checkpoint OWNER TO postgres;
   1557 
   1558 --
   1559 -- Name: shared_link; Type: TABLE; Schema: public; Owner: postgres
   1560 --
   1561 
   1562 CREATE TABLE public.shared_link (
   1563     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1564     description character varying,
   1565     "userId" uuid NOT NULL,
   1566     key bytea NOT NULL,
   1567     type character varying NOT NULL,
   1568     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1569     "expiresAt" timestamp with time zone,
   1570     "allowUpload" boolean DEFAULT false NOT NULL,
   1571     "albumId" uuid,
   1572     "allowDownload" boolean DEFAULT true NOT NULL,
   1573     "showExif" boolean DEFAULT true NOT NULL,
   1574     password character varying,
   1575     slug character varying
   1576 );
   1577 
   1578 
   1579 ALTER TABLE public.shared_link OWNER TO postgres;
   1580 
   1581 --
   1582 -- Name: shared_link_asset; Type: TABLE; Schema: public; Owner: postgres
   1583 --
   1584 
   1585 CREATE TABLE public.shared_link_asset (
   1586     "assetId" uuid NOT NULL,
   1587     "sharedLinkId" uuid NOT NULL
   1588 );
   1589 
   1590 
   1591 ALTER TABLE public.shared_link_asset OWNER TO postgres;
   1592 
   1593 --
   1594 -- Name: smart_search; Type: TABLE; Schema: public; Owner: postgres
   1595 --
   1596 
   1597 CREATE TABLE public.smart_search (
   1598     "assetId" uuid NOT NULL,
   1599     embedding public.vector(512) NOT NULL
   1600 );
   1601 
   1602 
   1603 ALTER TABLE public.smart_search OWNER TO postgres;
   1604 
   1605 --
   1606 -- Name: stack; Type: TABLE; Schema: public; Owner: postgres
   1607 --
   1608 
   1609 CREATE TABLE public.stack (
   1610     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1611     "primaryAssetId" uuid NOT NULL,
   1612     "ownerId" uuid NOT NULL,
   1613     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1614     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1615     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL
   1616 );
   1617 
   1618 
   1619 ALTER TABLE public.stack OWNER TO postgres;
   1620 
   1621 --
   1622 -- Name: stack_audit; Type: TABLE; Schema: public; Owner: postgres
   1623 --
   1624 
   1625 CREATE TABLE public.stack_audit (
   1626     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1627     "stackId" uuid NOT NULL,
   1628     "userId" uuid NOT NULL,
   1629     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL
   1630 );
   1631 
   1632 
   1633 ALTER TABLE public.stack_audit OWNER TO postgres;
   1634 
   1635 --
   1636 -- Name: system_metadata; Type: TABLE; Schema: public; Owner: postgres
   1637 --
   1638 
   1639 CREATE TABLE public.system_metadata (
   1640     key character varying NOT NULL,
   1641     value jsonb NOT NULL
   1642 );
   1643 
   1644 
   1645 ALTER TABLE public.system_metadata OWNER TO postgres;
   1646 
   1647 --
   1648 -- Name: tag; Type: TABLE; Schema: public; Owner: postgres
   1649 --
   1650 
   1651 CREATE TABLE public.tag (
   1652     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1653     "userId" uuid NOT NULL,
   1654     value character varying NOT NULL,
   1655     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1656     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1657     color character varying,
   1658     "parentId" uuid,
   1659     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL
   1660 );
   1661 
   1662 
   1663 ALTER TABLE public.tag OWNER TO postgres;
   1664 
   1665 --
   1666 -- Name: tag_asset; Type: TABLE; Schema: public; Owner: postgres
   1667 --
   1668 
   1669 CREATE TABLE public.tag_asset (
   1670     "assetId" uuid NOT NULL,
   1671     "tagId" uuid NOT NULL
   1672 );
   1673 
   1674 
   1675 ALTER TABLE public.tag_asset OWNER TO postgres;
   1676 
   1677 --
   1678 -- Name: tag_closure; Type: TABLE; Schema: public; Owner: postgres
   1679 --
   1680 
   1681 CREATE TABLE public.tag_closure (
   1682     id_ancestor uuid NOT NULL,
   1683     id_descendant uuid NOT NULL
   1684 );
   1685 
   1686 
   1687 ALTER TABLE public.tag_closure OWNER TO postgres;
   1688 
   1689 --
   1690 -- Name: user; Type: TABLE; Schema: public; Owner: postgres
   1691 --
   1692 
   1693 CREATE TABLE public."user" (
   1694     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1695     email character varying NOT NULL,
   1696     password character varying,
   1697     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1698     "profileImagePath" character varying DEFAULT ''::character varying NOT NULL,
   1699     "isAdmin" boolean DEFAULT false NOT NULL,
   1700     "shouldChangePassword" boolean DEFAULT true NOT NULL,
   1701     "deletedAt" timestamp with time zone,
   1702     "oauthId" character varying DEFAULT ''::character varying NOT NULL,
   1703     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1704     "storageLabel" character varying,
   1705     name character varying DEFAULT ''::character varying NOT NULL,
   1706     "quotaSizeInBytes" bigint,
   1707     "quotaUsageInBytes" bigint DEFAULT 0 NOT NULL,
   1708     status character varying DEFAULT 'active'::character varying NOT NULL,
   1709     "profileChangedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1710     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1711     "avatarColor" character varying,
   1712     "pinCode" character varying,
   1713     "clusterGroupId" uuid NOT NULL
   1714 );
   1715 
   1716 
   1717 ALTER TABLE public."user" OWNER TO postgres;
   1718 
   1719 --
   1720 -- Name: user_audit; Type: TABLE; Schema: public; Owner: postgres
   1721 --
   1722 
   1723 CREATE TABLE public.user_audit (
   1724     "userId" uuid NOT NULL,
   1725     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL,
   1726     id uuid DEFAULT public.immich_uuid_v7() NOT NULL
   1727 );
   1728 
   1729 
   1730 ALTER TABLE public.user_audit OWNER TO postgres;
   1731 
   1732 --
   1733 -- Name: user_metadata; Type: TABLE; Schema: public; Owner: postgres
   1734 --
   1735 
   1736 CREATE TABLE public.user_metadata (
   1737     "userId" uuid NOT NULL,
   1738     key character varying NOT NULL,
   1739     value jsonb NOT NULL,
   1740     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1741     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL
   1742 );
   1743 
   1744 
   1745 ALTER TABLE public.user_metadata OWNER TO postgres;
   1746 
   1747 --
   1748 -- Name: user_metadata_audit; Type: TABLE; Schema: public; Owner: postgres
   1749 --
   1750 
   1751 CREATE TABLE public.user_metadata_audit (
   1752     id uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1753     "userId" uuid NOT NULL,
   1754     key character varying NOT NULL,
   1755     "deletedAt" timestamp with time zone DEFAULT clock_timestamp() NOT NULL
   1756 );
   1757 
   1758 
   1759 ALTER TABLE public.user_metadata_audit OWNER TO postgres;
   1760 
   1761 --
   1762 -- Name: version_history; Type: TABLE; Schema: public; Owner: postgres
   1763 --
   1764 
   1765 CREATE TABLE public.version_history (
   1766     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1767     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1768     version character varying NOT NULL
   1769 );
   1770 
   1771 
   1772 ALTER TABLE public.version_history OWNER TO postgres;
   1773 
   1774 --
   1775 -- Name: video_stream_segment; Type: TABLE; Schema: public; Owner: postgres
   1776 --
   1777 
   1778 CREATE TABLE public.video_stream_segment (
   1779     "variantId" uuid NOT NULL,
   1780     index integer NOT NULL,
   1781     "durationUs" integer NOT NULL
   1782 );
   1783 
   1784 
   1785 ALTER TABLE public.video_stream_segment OWNER TO postgres;
   1786 
   1787 --
   1788 -- Name: video_stream_session; Type: TABLE; Schema: public; Owner: postgres
   1789 --
   1790 
   1791 CREATE TABLE public.video_stream_session (
   1792     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1793     "assetId" uuid NOT NULL,
   1794     "expiresAt" timestamp with time zone NOT NULL,
   1795     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL
   1796 );
   1797 
   1798 
   1799 ALTER TABLE public.video_stream_session OWNER TO postgres;
   1800 
   1801 --
   1802 -- Name: video_stream_variant; Type: TABLE; Schema: public; Owner: postgres
   1803 --
   1804 
   1805 CREATE TABLE public.video_stream_variant (
   1806     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1807     "sessionId" uuid NOT NULL,
   1808     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1809     bitrate integer NOT NULL,
   1810     codec public.video_stream_variant_codec_enum NOT NULL,
   1811     resolution smallint NOT NULL
   1812 );
   1813 
   1814 
   1815 ALTER TABLE public.video_stream_variant OWNER TO postgres;
   1816 
   1817 --
   1818 -- Name: workflow; Type: TABLE; Schema: public; Owner: postgres
   1819 --
   1820 
   1821 CREATE TABLE public.workflow (
   1822     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1823     "ownerId" uuid NOT NULL,
   1824     trigger character varying NOT NULL,
   1825     name character varying,
   1826     description character varying,
   1827     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1828     "updatedAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1829     "updateId" uuid DEFAULT public.immich_uuid_v7() NOT NULL,
   1830     enabled boolean DEFAULT true NOT NULL,
   1831     logging boolean DEFAULT false NOT NULL
   1832 );
   1833 
   1834 
   1835 ALTER TABLE public.workflow OWNER TO postgres;
   1836 
   1837 --
   1838 -- Name: workflow_log; Type: TABLE; Schema: public; Owner: postgres
   1839 --
   1840 
   1841 CREATE TABLE public.workflow_log (
   1842     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1843     "createdAt" timestamp with time zone DEFAULT current_timestamp NOT NULL,
   1844     "workflowId" uuid NOT NULL,
   1845     result character varying NOT NULL,
   1846     "workflowStepId" uuid,
   1847     "triggerDataId" uuid,
   1848     "runId" uuid NOT NULL
   1849 );
   1850 
   1851 
   1852 ALTER TABLE public.workflow_log OWNER TO postgres;
   1853 
   1854 --
   1855 -- Name: workflow_step; Type: TABLE; Schema: public; Owner: postgres
   1856 --
   1857 
   1858 CREATE TABLE public.workflow_step (
   1859     id uuid DEFAULT public.uuid_generate_v4() NOT NULL,
   1860     enabled boolean DEFAULT true NOT NULL,
   1861     "workflowId" uuid NOT NULL,
   1862     "pluginMethodId" uuid NOT NULL,
   1863     config jsonb,
   1864     "order" integer NOT NULL
   1865 );
   1866 
   1867 
   1868 ALTER TABLE public.workflow_step OWNER TO postgres;
   1869 
   1870 --
   1871 -- Name: move_history UQ_entityId_pathType; Type: CONSTRAINT; Schema: public; Owner: postgres
   1872 --
   1873 
   1874 ALTER TABLE ONLY public.move_history
   1875     ADD CONSTRAINT "UQ_entityId_pathType" UNIQUE ("entityId", "pathType");
   1876 
   1877 
   1878 --
   1879 -- Name: move_history UQ_newPath; Type: CONSTRAINT; Schema: public; Owner: postgres
   1880 --
   1881 
   1882 ALTER TABLE ONLY public.move_history
   1883     ADD CONSTRAINT "UQ_newPath" UNIQUE ("newPath");
   1884 
   1885 
   1886 --
   1887 -- Name: activity activity_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1888 --
   1889 
   1890 ALTER TABLE ONLY public.activity
   1891     ADD CONSTRAINT activity_pkey PRIMARY KEY (id);
   1892 
   1893 
   1894 --
   1895 -- Name: album_asset_audit album_asset_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1896 --
   1897 
   1898 ALTER TABLE ONLY public.album_asset_audit
   1899     ADD CONSTRAINT album_asset_audit_pkey PRIMARY KEY (id);
   1900 
   1901 
   1902 --
   1903 -- Name: album_asset album_asset_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1904 --
   1905 
   1906 ALTER TABLE ONLY public.album_asset
   1907     ADD CONSTRAINT album_asset_pkey PRIMARY KEY ("albumId", "assetId");
   1908 
   1909 
   1910 --
   1911 -- Name: album_audit album_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1912 --
   1913 
   1914 ALTER TABLE ONLY public.album_audit
   1915     ADD CONSTRAINT album_audit_pkey PRIMARY KEY (id);
   1916 
   1917 
   1918 --
   1919 -- Name: album album_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1920 --
   1921 
   1922 ALTER TABLE ONLY public.album
   1923     ADD CONSTRAINT album_pkey PRIMARY KEY (id);
   1924 
   1925 
   1926 --
   1927 -- Name: album_user_audit album_user_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1928 --
   1929 
   1930 ALTER TABLE ONLY public.album_user_audit
   1931     ADD CONSTRAINT album_user_audit_pkey PRIMARY KEY (id);
   1932 
   1933 
   1934 --
   1935 -- Name: album_user album_user_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1936 --
   1937 
   1938 ALTER TABLE ONLY public.album_user
   1939     ADD CONSTRAINT album_user_pkey PRIMARY KEY ("albumId", "userId");
   1940 
   1941 
   1942 --
   1943 -- Name: api_key api_key_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1944 --
   1945 
   1946 ALTER TABLE ONLY public.api_key
   1947     ADD CONSTRAINT api_key_pkey PRIMARY KEY (id);
   1948 
   1949 
   1950 --
   1951 -- Name: asset_audio asset_audio_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1952 --
   1953 
   1954 ALTER TABLE ONLY public.asset_audio
   1955     ADD CONSTRAINT asset_audio_pkey PRIMARY KEY ("assetId");
   1956 
   1957 
   1958 --
   1959 -- Name: asset_audit asset_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1960 --
   1961 
   1962 ALTER TABLE ONLY public.asset_audit
   1963     ADD CONSTRAINT asset_audit_pkey PRIMARY KEY (id);
   1964 
   1965 
   1966 --
   1967 -- Name: asset_edit asset_edit_assetId_sequence_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   1968 --
   1969 
   1970 ALTER TABLE ONLY public.asset_edit
   1971     ADD CONSTRAINT "asset_edit_assetId_sequence_uq" UNIQUE ("assetId", sequence);
   1972 
   1973 
   1974 --
   1975 -- Name: asset_edit_audit asset_edit_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1976 --
   1977 
   1978 ALTER TABLE ONLY public.asset_edit_audit
   1979     ADD CONSTRAINT asset_edit_audit_pkey PRIMARY KEY (id);
   1980 
   1981 
   1982 --
   1983 -- Name: asset_edit asset_edit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1984 --
   1985 
   1986 ALTER TABLE ONLY public.asset_edit
   1987     ADD CONSTRAINT asset_edit_pkey PRIMARY KEY (id);
   1988 
   1989 
   1990 --
   1991 -- Name: asset_exif asset_exif_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   1992 --
   1993 
   1994 ALTER TABLE ONLY public.asset_exif
   1995     ADD CONSTRAINT asset_exif_pkey PRIMARY KEY ("assetId");
   1996 
   1997 
   1998 --
   1999 -- Name: asset_face_audit asset_face_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2000 --
   2001 
   2002 ALTER TABLE ONLY public.asset_face_audit
   2003     ADD CONSTRAINT asset_face_audit_pkey PRIMARY KEY (id);
   2004 
   2005 
   2006 --
   2007 -- Name: asset_face asset_face_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2008 --
   2009 
   2010 ALTER TABLE ONLY public.asset_face
   2011     ADD CONSTRAINT asset_face_pkey PRIMARY KEY (id);
   2012 
   2013 
   2014 --
   2015 -- Name: asset_file asset_file_assetId_type_isEdited_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2016 --
   2017 
   2018 ALTER TABLE ONLY public.asset_file
   2019     ADD CONSTRAINT "asset_file_assetId_type_isEdited_uq" UNIQUE ("assetId", type, "isEdited");
   2020 
   2021 
   2022 --
   2023 -- Name: asset_file asset_file_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2024 --
   2025 
   2026 ALTER TABLE ONLY public.asset_file
   2027     ADD CONSTRAINT asset_file_pkey PRIMARY KEY (id);
   2028 
   2029 
   2030 --
   2031 -- Name: asset_job_status asset_job_status_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2032 --
   2033 
   2034 ALTER TABLE ONLY public.asset_job_status
   2035     ADD CONSTRAINT asset_job_status_pkey PRIMARY KEY ("assetId");
   2036 
   2037 
   2038 --
   2039 -- Name: asset_keyframe asset_keyframe_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2040 --
   2041 
   2042 ALTER TABLE ONLY public.asset_keyframe
   2043     ADD CONSTRAINT asset_keyframe_pkey PRIMARY KEY ("assetId");
   2044 
   2045 
   2046 --
   2047 -- Name: asset_metadata_audit asset_metadata_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2048 --
   2049 
   2050 ALTER TABLE ONLY public.asset_metadata_audit
   2051     ADD CONSTRAINT asset_metadata_audit_pkey PRIMARY KEY (id);
   2052 
   2053 
   2054 --
   2055 -- Name: asset_metadata asset_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2056 --
   2057 
   2058 ALTER TABLE ONLY public.asset_metadata
   2059     ADD CONSTRAINT asset_metadata_pkey PRIMARY KEY ("assetId", key);
   2060 
   2061 
   2062 --
   2063 -- Name: asset_ocr_audit asset_ocr_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2064 --
   2065 
   2066 ALTER TABLE ONLY public.asset_ocr_audit
   2067     ADD CONSTRAINT asset_ocr_audit_pkey PRIMARY KEY (id);
   2068 
   2069 
   2070 --
   2071 -- Name: asset_ocr asset_ocr_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2072 --
   2073 
   2074 ALTER TABLE ONLY public.asset_ocr
   2075     ADD CONSTRAINT asset_ocr_pkey PRIMARY KEY (id);
   2076 
   2077 
   2078 --
   2079 -- Name: asset asset_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2080 --
   2081 
   2082 ALTER TABLE ONLY public.asset
   2083     ADD CONSTRAINT asset_pkey PRIMARY KEY (id);
   2084 
   2085 
   2086 --
   2087 -- Name: asset_video asset_video_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2088 --
   2089 
   2090 ALTER TABLE ONLY public.asset_video
   2091     ADD CONSTRAINT asset_video_pkey PRIMARY KEY ("assetId");
   2092 
   2093 
   2094 --
   2095 -- Name: cluster_group cluster_group_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2096 --
   2097 
   2098 ALTER TABLE ONLY public.cluster_group
   2099     ADD CONSTRAINT cluster_group_pkey PRIMARY KEY (id);
   2100 
   2101 
   2102 --
   2103 -- Name: cluster_group_request cluster_group_request_clusterGroupId_userId_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2104 --
   2105 
   2106 ALTER TABLE ONLY public.cluster_group_request
   2107     ADD CONSTRAINT "cluster_group_request_clusterGroupId_userId_uq" UNIQUE ("clusterGroupId", "userId");
   2108 
   2109 
   2110 --
   2111 -- Name: cluster_group_request cluster_group_request_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2112 --
   2113 
   2114 ALTER TABLE ONLY public.cluster_group_request
   2115     ADD CONSTRAINT cluster_group_request_pkey PRIMARY KEY (id);
   2116 
   2117 
   2118 --
   2119 -- Name: face_search face_search_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2120 --
   2121 
   2122 ALTER TABLE ONLY public.face_search
   2123     ADD CONSTRAINT face_search_pkey PRIMARY KEY ("faceId");
   2124 
   2125 
   2126 --
   2127 -- Name: geodata_places geodata_places_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2128 --
   2129 
   2130 ALTER TABLE ONLY public.geodata_places
   2131     ADD CONSTRAINT geodata_places_pkey PRIMARY KEY (id) WITH (fillfactor='100');
   2132 
   2133 
   2134 --
   2135 -- Name: integrity_report integrity_report_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2136 --
   2137 
   2138 ALTER TABLE ONLY public.integrity_report
   2139     ADD CONSTRAINT integrity_report_pkey PRIMARY KEY (id);
   2140 
   2141 
   2142 --
   2143 -- Name: integrity_report integrity_report_type_path_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2144 --
   2145 
   2146 ALTER TABLE ONLY public.integrity_report
   2147     ADD CONSTRAINT integrity_report_type_path_uq UNIQUE (type, path);
   2148 
   2149 
   2150 --
   2151 -- Name: kysely_migrations_lock kysely_migrations_lock_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2152 --
   2153 
   2154 ALTER TABLE ONLY public.kysely_migrations_lock
   2155     ADD CONSTRAINT kysely_migrations_lock_pkey PRIMARY KEY (id);
   2156 
   2157 
   2158 --
   2159 -- Name: kysely_migrations kysely_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2160 --
   2161 
   2162 ALTER TABLE ONLY public.kysely_migrations
   2163     ADD CONSTRAINT kysely_migrations_pkey PRIMARY KEY (name);
   2164 
   2165 
   2166 --
   2167 -- Name: library library_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2168 --
   2169 
   2170 ALTER TABLE ONLY public.library
   2171     ADD CONSTRAINT library_pkey PRIMARY KEY (id);
   2172 
   2173 
   2174 --
   2175 -- Name: memory_asset_audit memory_asset_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2176 --
   2177 
   2178 ALTER TABLE ONLY public.memory_asset_audit
   2179     ADD CONSTRAINT memory_asset_audit_pkey PRIMARY KEY (id);
   2180 
   2181 
   2182 --
   2183 -- Name: memory_asset memory_asset_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2184 --
   2185 
   2186 ALTER TABLE ONLY public.memory_asset
   2187     ADD CONSTRAINT memory_asset_pkey PRIMARY KEY ("memoriesId", "assetId");
   2188 
   2189 
   2190 --
   2191 -- Name: memory_audit memory_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2192 --
   2193 
   2194 ALTER TABLE ONLY public.memory_audit
   2195     ADD CONSTRAINT memory_audit_pkey PRIMARY KEY (id);
   2196 
   2197 
   2198 --
   2199 -- Name: memory memory_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2200 --
   2201 
   2202 ALTER TABLE ONLY public.memory
   2203     ADD CONSTRAINT memory_pkey PRIMARY KEY (id);
   2204 
   2205 
   2206 --
   2207 -- Name: migration_overrides migration_overrides_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2208 --
   2209 
   2210 ALTER TABLE ONLY public.migration_overrides
   2211     ADD CONSTRAINT migration_overrides_pkey PRIMARY KEY (name);
   2212 
   2213 
   2214 --
   2215 -- Name: move_history move_history_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2216 --
   2217 
   2218 ALTER TABLE ONLY public.move_history
   2219     ADD CONSTRAINT move_history_pkey PRIMARY KEY (id);
   2220 
   2221 
   2222 --
   2223 -- Name: naturalearth_countries naturalearth_countries_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2224 --
   2225 
   2226 ALTER TABLE ONLY public.naturalearth_countries
   2227     ADD CONSTRAINT naturalearth_countries_pkey PRIMARY KEY (id) WITH (fillfactor='100');
   2228 
   2229 
   2230 --
   2231 -- Name: notification notification_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2232 --
   2233 
   2234 ALTER TABLE ONLY public.notification
   2235     ADD CONSTRAINT notification_pkey PRIMARY KEY (id);
   2236 
   2237 
   2238 --
   2239 -- Name: ocr_search ocr_search_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2240 --
   2241 
   2242 ALTER TABLE ONLY public.ocr_search
   2243     ADD CONSTRAINT ocr_search_pkey PRIMARY KEY ("assetId");
   2244 
   2245 
   2246 --
   2247 -- Name: partner_audit partner_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2248 --
   2249 
   2250 ALTER TABLE ONLY public.partner_audit
   2251     ADD CONSTRAINT partner_audit_pkey PRIMARY KEY (id);
   2252 
   2253 
   2254 --
   2255 -- Name: partner partner_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2256 --
   2257 
   2258 ALTER TABLE ONLY public.partner
   2259     ADD CONSTRAINT partner_pkey PRIMARY KEY ("sharedById", "sharedWithId");
   2260 
   2261 
   2262 --
   2263 -- Name: person_audit person_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2264 --
   2265 
   2266 ALTER TABLE ONLY public.person_audit
   2267     ADD CONSTRAINT person_audit_pkey PRIMARY KEY (id);
   2268 
   2269 
   2270 --
   2271 -- Name: person_group_audit person_group_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2272 --
   2273 
   2274 ALTER TABLE ONLY public.person_group_audit
   2275     ADD CONSTRAINT person_group_audit_pkey PRIMARY KEY (id);
   2276 
   2277 
   2278 --
   2279 -- Name: person_group person_group_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2280 --
   2281 
   2282 ALTER TABLE ONLY public.person_group
   2283     ADD CONSTRAINT person_group_pkey PRIMARY KEY (id);
   2284 
   2285 
   2286 --
   2287 -- Name: person person_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2288 --
   2289 
   2290 ALTER TABLE ONLY public.person
   2291     ADD CONSTRAINT person_pkey PRIMARY KEY ("ownerId", "personGroupId");
   2292 
   2293 
   2294 --
   2295 -- Name: plugin_method plugin_method_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2296 --
   2297 
   2298 ALTER TABLE ONLY public.plugin_method
   2299     ADD CONSTRAINT plugin_method_pkey PRIMARY KEY (id);
   2300 
   2301 
   2302 --
   2303 -- Name: plugin_method plugin_method_pluginId_name_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2304 --
   2305 
   2306 ALTER TABLE ONLY public.plugin_method
   2307     ADD CONSTRAINT "plugin_method_pluginId_name_uq" UNIQUE ("pluginId", name);
   2308 
   2309 
   2310 --
   2311 -- Name: plugin plugin_name_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2312 --
   2313 
   2314 ALTER TABLE ONLY public.plugin
   2315     ADD CONSTRAINT plugin_name_uq UNIQUE (name);
   2316 
   2317 
   2318 --
   2319 -- Name: plugin plugin_name_version_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2320 --
   2321 
   2322 ALTER TABLE ONLY public.plugin
   2323     ADD CONSTRAINT plugin_name_version_uq UNIQUE (name, version);
   2324 
   2325 
   2326 --
   2327 -- Name: plugin plugin_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2328 --
   2329 
   2330 ALTER TABLE ONLY public.plugin
   2331     ADD CONSTRAINT plugin_pkey PRIMARY KEY (id);
   2332 
   2333 
   2334 --
   2335 -- Name: session session_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2336 --
   2337 
   2338 ALTER TABLE ONLY public.session
   2339     ADD CONSTRAINT session_pkey PRIMARY KEY (id);
   2340 
   2341 
   2342 --
   2343 -- Name: session_sync_checkpoint session_sync_checkpoint_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2344 --
   2345 
   2346 ALTER TABLE ONLY public.session_sync_checkpoint
   2347     ADD CONSTRAINT session_sync_checkpoint_pkey PRIMARY KEY ("sessionId", type);
   2348 
   2349 
   2350 --
   2351 -- Name: shared_link_asset shared_link_asset_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2352 --
   2353 
   2354 ALTER TABLE ONLY public.shared_link_asset
   2355     ADD CONSTRAINT shared_link_asset_pkey PRIMARY KEY ("assetId", "sharedLinkId");
   2356 
   2357 
   2358 --
   2359 -- Name: shared_link shared_link_key_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2360 --
   2361 
   2362 ALTER TABLE ONLY public.shared_link
   2363     ADD CONSTRAINT shared_link_key_uq UNIQUE (key);
   2364 
   2365 
   2366 --
   2367 -- Name: shared_link shared_link_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2368 --
   2369 
   2370 ALTER TABLE ONLY public.shared_link
   2371     ADD CONSTRAINT shared_link_pkey PRIMARY KEY (id);
   2372 
   2373 
   2374 --
   2375 -- Name: shared_link shared_link_slug_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2376 --
   2377 
   2378 ALTER TABLE ONLY public.shared_link
   2379     ADD CONSTRAINT shared_link_slug_uq UNIQUE (slug);
   2380 
   2381 
   2382 --
   2383 -- Name: smart_search smart_search_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2384 --
   2385 
   2386 ALTER TABLE ONLY public.smart_search
   2387     ADD CONSTRAINT smart_search_pkey PRIMARY KEY ("assetId");
   2388 
   2389 
   2390 --
   2391 -- Name: stack_audit stack_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2392 --
   2393 
   2394 ALTER TABLE ONLY public.stack_audit
   2395     ADD CONSTRAINT stack_audit_pkey PRIMARY KEY (id);
   2396 
   2397 
   2398 --
   2399 -- Name: stack stack_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2400 --
   2401 
   2402 ALTER TABLE ONLY public.stack
   2403     ADD CONSTRAINT stack_pkey PRIMARY KEY (id);
   2404 
   2405 
   2406 --
   2407 -- Name: stack stack_primaryAssetId_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2408 --
   2409 
   2410 ALTER TABLE ONLY public.stack
   2411     ADD CONSTRAINT "stack_primaryAssetId_uq" UNIQUE ("primaryAssetId");
   2412 
   2413 
   2414 --
   2415 -- Name: system_metadata system_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2416 --
   2417 
   2418 ALTER TABLE ONLY public.system_metadata
   2419     ADD CONSTRAINT system_metadata_pkey PRIMARY KEY (key);
   2420 
   2421 
   2422 --
   2423 -- Name: tag_asset tag_asset_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2424 --
   2425 
   2426 ALTER TABLE ONLY public.tag_asset
   2427     ADD CONSTRAINT tag_asset_pkey PRIMARY KEY ("assetId", "tagId");
   2428 
   2429 
   2430 --
   2431 -- Name: tag_closure tag_closure_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2432 --
   2433 
   2434 ALTER TABLE ONLY public.tag_closure
   2435     ADD CONSTRAINT tag_closure_pkey PRIMARY KEY (id_ancestor, id_descendant);
   2436 
   2437 
   2438 --
   2439 -- Name: tag tag_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2440 --
   2441 
   2442 ALTER TABLE ONLY public.tag
   2443     ADD CONSTRAINT tag_pkey PRIMARY KEY (id);
   2444 
   2445 
   2446 --
   2447 -- Name: tag tag_userId_value_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2448 --
   2449 
   2450 ALTER TABLE ONLY public.tag
   2451     ADD CONSTRAINT "tag_userId_value_uq" UNIQUE ("userId", value);
   2452 
   2453 
   2454 --
   2455 -- Name: user_audit user_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2456 --
   2457 
   2458 ALTER TABLE ONLY public.user_audit
   2459     ADD CONSTRAINT user_audit_pkey PRIMARY KEY (id);
   2460 
   2461 
   2462 --
   2463 -- Name: user user_email_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2464 --
   2465 
   2466 ALTER TABLE ONLY public."user"
   2467     ADD CONSTRAINT user_email_uq UNIQUE (email);
   2468 
   2469 
   2470 --
   2471 -- Name: user_metadata_audit user_metadata_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2472 --
   2473 
   2474 ALTER TABLE ONLY public.user_metadata_audit
   2475     ADD CONSTRAINT user_metadata_audit_pkey PRIMARY KEY (id);
   2476 
   2477 
   2478 --
   2479 -- Name: user_metadata user_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2480 --
   2481 
   2482 ALTER TABLE ONLY public.user_metadata
   2483     ADD CONSTRAINT user_metadata_pkey PRIMARY KEY ("userId", key);
   2484 
   2485 
   2486 --
   2487 -- Name: user user_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2488 --
   2489 
   2490 ALTER TABLE ONLY public."user"
   2491     ADD CONSTRAINT user_pkey PRIMARY KEY (id);
   2492 
   2493 
   2494 --
   2495 -- Name: user user_storageLabel_uq; Type: CONSTRAINT; Schema: public; Owner: postgres
   2496 --
   2497 
   2498 ALTER TABLE ONLY public."user"
   2499     ADD CONSTRAINT "user_storageLabel_uq" UNIQUE ("storageLabel");
   2500 
   2501 
   2502 --
   2503 -- Name: version_history version_history_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2504 --
   2505 
   2506 ALTER TABLE ONLY public.version_history
   2507     ADD CONSTRAINT version_history_pkey PRIMARY KEY (id);
   2508 
   2509 
   2510 --
   2511 -- Name: video_stream_segment video_stream_segment_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2512 --
   2513 
   2514 ALTER TABLE ONLY public.video_stream_segment
   2515     ADD CONSTRAINT video_stream_segment_pkey PRIMARY KEY ("variantId", index);
   2516 
   2517 
   2518 --
   2519 -- Name: video_stream_session video_stream_session_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2520 --
   2521 
   2522 ALTER TABLE ONLY public.video_stream_session
   2523     ADD CONSTRAINT video_stream_session_pkey PRIMARY KEY (id);
   2524 
   2525 
   2526 --
   2527 -- Name: video_stream_variant video_stream_variant_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2528 --
   2529 
   2530 ALTER TABLE ONLY public.video_stream_variant
   2531     ADD CONSTRAINT video_stream_variant_pkey PRIMARY KEY (id);
   2532 
   2533 
   2534 --
   2535 -- Name: workflow_log workflow_log_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2536 --
   2537 
   2538 ALTER TABLE ONLY public.workflow_log
   2539     ADD CONSTRAINT workflow_log_pkey PRIMARY KEY (id);
   2540 
   2541 
   2542 --
   2543 -- Name: workflow workflow_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2544 --
   2545 
   2546 ALTER TABLE ONLY public.workflow
   2547     ADD CONSTRAINT workflow_pkey PRIMARY KEY (id);
   2548 
   2549 
   2550 --
   2551 -- Name: workflow_step workflow_step_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
   2552 --
   2553 
   2554 ALTER TABLE ONLY public.workflow_step
   2555     ADD CONSTRAINT workflow_step_pkey PRIMARY KEY (id);
   2556 
   2557 
   2558 --
   2559 -- Name: IDX_asset_exif_gist_earthcoord; Type: INDEX; Schema: public; Owner: postgres
   2560 --
   2561 
   2562 CREATE INDEX "IDX_asset_exif_gist_earthcoord" ON public.asset_exif USING gist (public.ll_to_earth_public(latitude, longitude));
   2563 
   2564 
   2565 --
   2566 -- Name: IDX_geodata_gist_earthcoord; Type: INDEX; Schema: public; Owner: postgres
   2567 --
   2568 
   2569 CREATE INDEX "IDX_geodata_gist_earthcoord" ON public.geodata_places USING gist (public.ll_to_earth_public(latitude, longitude));
   2570 
   2571 
   2572 --
   2573 -- Name: IDX_user_metadata_audit_deleted_at; Type: INDEX; Schema: public; Owner: postgres
   2574 --
   2575 
   2576 CREATE INDEX "IDX_user_metadata_audit_deleted_at" ON public.user_metadata_audit USING btree ("deletedAt");
   2577 
   2578 
   2579 --
   2580 -- Name: IDX_user_metadata_audit_key; Type: INDEX; Schema: public; Owner: postgres
   2581 --
   2582 
   2583 CREATE INDEX "IDX_user_metadata_audit_key" ON public.user_metadata_audit USING btree (key);
   2584 
   2585 
   2586 --
   2587 -- Name: IDX_user_metadata_audit_user_id; Type: INDEX; Schema: public; Owner: postgres
   2588 --
   2589 
   2590 CREATE INDEX "IDX_user_metadata_audit_user_id" ON public.user_metadata_audit USING btree ("userId");
   2591 
   2592 
   2593 --
   2594 -- Name: IDX_user_metadata_update_id; Type: INDEX; Schema: public; Owner: postgres
   2595 --
   2596 
   2597 CREATE INDEX "IDX_user_metadata_update_id" ON public.user_metadata USING btree ("updateId");
   2598 
   2599 
   2600 --
   2601 -- Name: IDX_user_metadata_updated_at; Type: INDEX; Schema: public; Owner: postgres
   2602 --
   2603 
   2604 CREATE INDEX "IDX_user_metadata_updated_at" ON public.user_metadata USING btree ("updatedAt");
   2605 
   2606 
   2607 --
   2608 -- Name: UQ_assets_owner_checksum; Type: INDEX; Schema: public; Owner: postgres
   2609 --
   2610 
   2611 CREATE UNIQUE INDEX "UQ_assets_owner_checksum" ON public.asset USING btree ("ownerId", checksum) WHERE ("libraryId" IS NULL);
   2612 
   2613 
   2614 --
   2615 -- Name: activity_albumId_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   2616 --
   2617 
   2618 CREATE INDEX "activity_albumId_assetId_idx" ON public.activity USING btree ("albumId", "assetId");
   2619 
   2620 
   2621 --
   2622 -- Name: activity_albumId_idx; Type: INDEX; Schema: public; Owner: postgres
   2623 --
   2624 
   2625 CREATE INDEX "activity_albumId_idx" ON public.activity USING btree ("albumId");
   2626 
   2627 
   2628 --
   2629 -- Name: activity_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   2630 --
   2631 
   2632 CREATE INDEX "activity_assetId_idx" ON public.activity USING btree ("assetId");
   2633 
   2634 
   2635 --
   2636 -- Name: activity_like_idx; Type: INDEX; Schema: public; Owner: postgres
   2637 --
   2638 
   2639 CREATE UNIQUE INDEX activity_like_idx ON public.activity USING btree ("assetId", "userId", "albumId") WHERE ("isLiked" = true);
   2640 
   2641 
   2642 --
   2643 -- Name: activity_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   2644 --
   2645 
   2646 CREATE INDEX "activity_updateId_idx" ON public.activity USING btree ("updateId");
   2647 
   2648 
   2649 --
   2650 -- Name: activity_userId_idx; Type: INDEX; Schema: public; Owner: postgres
   2651 --
   2652 
   2653 CREATE INDEX "activity_userId_idx" ON public.activity USING btree ("userId");
   2654 
   2655 
   2656 --
   2657 -- Name: album_albumThumbnailAssetId_idx; Type: INDEX; Schema: public; Owner: postgres
   2658 --
   2659 
   2660 CREATE INDEX "album_albumThumbnailAssetId_idx" ON public.album USING btree ("albumThumbnailAssetId");
   2661 
   2662 
   2663 --
   2664 -- Name: album_asset_albumId_idx; Type: INDEX; Schema: public; Owner: postgres
   2665 --
   2666 
   2667 CREATE INDEX "album_asset_albumId_idx" ON public.album_asset USING btree ("albumId");
   2668 
   2669 
   2670 --
   2671 -- Name: album_asset_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   2672 --
   2673 
   2674 CREATE INDEX "album_asset_assetId_idx" ON public.album_asset USING btree ("assetId");
   2675 
   2676 
   2677 --
   2678 -- Name: album_asset_audit_albumId_idx; Type: INDEX; Schema: public; Owner: postgres
   2679 --
   2680 
   2681 CREATE INDEX "album_asset_audit_albumId_idx" ON public.album_asset_audit USING btree ("albumId");
   2682 
   2683 
   2684 --
   2685 -- Name: album_asset_audit_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   2686 --
   2687 
   2688 CREATE INDEX "album_asset_audit_assetId_idx" ON public.album_asset_audit USING btree ("assetId");
   2689 
   2690 
   2691 --
   2692 -- Name: album_asset_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   2693 --
   2694 
   2695 CREATE INDEX "album_asset_audit_deletedAt_idx" ON public.album_asset_audit USING btree ("deletedAt");
   2696 
   2697 
   2698 --
   2699 -- Name: album_asset_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   2700 --
   2701 
   2702 CREATE INDEX "album_asset_updateId_idx" ON public.album_asset USING btree ("updateId");
   2703 
   2704 
   2705 --
   2706 -- Name: album_audit_albumId_idx; Type: INDEX; Schema: public; Owner: postgres
   2707 --
   2708 
   2709 CREATE INDEX "album_audit_albumId_idx" ON public.album_audit USING btree ("albumId");
   2710 
   2711 
   2712 --
   2713 -- Name: album_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   2714 --
   2715 
   2716 CREATE INDEX "album_audit_deletedAt_idx" ON public.album_audit USING btree ("deletedAt");
   2717 
   2718 
   2719 --
   2720 -- Name: album_audit_userId_idx; Type: INDEX; Schema: public; Owner: postgres
   2721 --
   2722 
   2723 CREATE INDEX "album_audit_userId_idx" ON public.album_audit USING btree ("userId");
   2724 
   2725 
   2726 --
   2727 -- Name: album_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   2728 --
   2729 
   2730 CREATE INDEX "album_updateId_idx" ON public.album USING btree ("updateId");
   2731 
   2732 
   2733 --
   2734 -- Name: album_user_albumId_idx; Type: INDEX; Schema: public; Owner: postgres
   2735 --
   2736 
   2737 CREATE INDEX "album_user_albumId_idx" ON public.album_user USING btree ("albumId");
   2738 
   2739 
   2740 --
   2741 -- Name: album_user_audit_albumId_idx; Type: INDEX; Schema: public; Owner: postgres
   2742 --
   2743 
   2744 CREATE INDEX "album_user_audit_albumId_idx" ON public.album_user_audit USING btree ("albumId");
   2745 
   2746 
   2747 --
   2748 -- Name: album_user_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   2749 --
   2750 
   2751 CREATE INDEX "album_user_audit_deletedAt_idx" ON public.album_user_audit USING btree ("deletedAt");
   2752 
   2753 
   2754 --
   2755 -- Name: album_user_audit_userId_idx; Type: INDEX; Schema: public; Owner: postgres
   2756 --
   2757 
   2758 CREATE INDEX "album_user_audit_userId_idx" ON public.album_user_audit USING btree ("userId");
   2759 
   2760 
   2761 --
   2762 -- Name: album_user_createId_idx; Type: INDEX; Schema: public; Owner: postgres
   2763 --
   2764 
   2765 CREATE INDEX "album_user_createId_idx" ON public.album_user USING btree ("createId");
   2766 
   2767 
   2768 --
   2769 -- Name: album_user_unique_owner; Type: INDEX; Schema: public; Owner: postgres
   2770 --
   2771 
   2772 CREATE UNIQUE INDEX album_user_unique_owner ON public.album_user USING btree ("albumId") WHERE (role = 'owner'::public.album_user_role_enum);
   2773 
   2774 
   2775 --
   2776 -- Name: album_user_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   2777 --
   2778 
   2779 CREATE INDEX "album_user_updateId_idx" ON public.album_user USING btree ("updateId");
   2780 
   2781 
   2782 --
   2783 -- Name: album_user_userId_idx; Type: INDEX; Schema: public; Owner: postgres
   2784 --
   2785 
   2786 CREATE INDEX "album_user_userId_idx" ON public.album_user USING btree ("userId");
   2787 
   2788 
   2789 --
   2790 -- Name: api_key_key_idx; Type: INDEX; Schema: public; Owner: postgres
   2791 --
   2792 
   2793 CREATE INDEX api_key_key_idx ON public.api_key USING btree (key);
   2794 
   2795 
   2796 --
   2797 -- Name: api_key_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   2798 --
   2799 
   2800 CREATE INDEX "api_key_updateId_idx" ON public.api_key USING btree ("updateId");
   2801 
   2802 
   2803 --
   2804 -- Name: api_key_userId_idx; Type: INDEX; Schema: public; Owner: postgres
   2805 --
   2806 
   2807 CREATE INDEX "api_key_userId_idx" ON public.api_key USING btree ("userId");
   2808 
   2809 
   2810 --
   2811 -- Name: asset_audit_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   2812 --
   2813 
   2814 CREATE INDEX "asset_audit_assetId_idx" ON public.asset_audit USING btree ("assetId");
   2815 
   2816 
   2817 --
   2818 -- Name: asset_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   2819 --
   2820 
   2821 CREATE INDEX "asset_audit_deletedAt_idx" ON public.asset_audit USING btree ("deletedAt");
   2822 
   2823 
   2824 --
   2825 -- Name: asset_audit_ownerId_idx; Type: INDEX; Schema: public; Owner: postgres
   2826 --
   2827 
   2828 CREATE INDEX "asset_audit_ownerId_idx" ON public.asset_audit USING btree ("ownerId");
   2829 
   2830 
   2831 --
   2832 -- Name: asset_checksum_idx; Type: INDEX; Schema: public; Owner: postgres
   2833 --
   2834 
   2835 CREATE INDEX asset_checksum_idx ON public.asset USING btree (checksum);
   2836 
   2837 
   2838 --
   2839 -- Name: asset_createdAt_idx; Type: INDEX; Schema: public; Owner: postgres
   2840 --
   2841 
   2842 CREATE INDEX "asset_createdAt_idx" ON public.asset USING btree ("createdAt");
   2843 
   2844 
   2845 --
   2846 -- Name: asset_duplicateId_idx; Type: INDEX; Schema: public; Owner: postgres
   2847 --
   2848 
   2849 CREATE INDEX "asset_duplicateId_idx" ON public.asset USING btree ("duplicateId");
   2850 
   2851 
   2852 --
   2853 -- Name: asset_edit_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   2854 --
   2855 
   2856 CREATE INDEX "asset_edit_assetId_idx" ON public.asset_edit USING btree ("assetId");
   2857 
   2858 
   2859 --
   2860 -- Name: asset_edit_audit_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   2861 --
   2862 
   2863 CREATE INDEX "asset_edit_audit_assetId_idx" ON public.asset_edit_audit USING btree ("assetId");
   2864 
   2865 
   2866 --
   2867 -- Name: asset_edit_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   2868 --
   2869 
   2870 CREATE INDEX "asset_edit_audit_deletedAt_idx" ON public.asset_edit_audit USING btree ("deletedAt");
   2871 
   2872 
   2873 --
   2874 -- Name: asset_edit_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   2875 --
   2876 
   2877 CREATE INDEX "asset_edit_updateId_idx" ON public.asset_edit USING btree ("updateId");
   2878 
   2879 
   2880 --
   2881 -- Name: asset_exif_autoStackId_idx; Type: INDEX; Schema: public; Owner: postgres
   2882 --
   2883 
   2884 CREATE INDEX "asset_exif_autoStackId_idx" ON public.asset_exif USING btree ("autoStackId");
   2885 
   2886 
   2887 --
   2888 -- Name: asset_exif_city_idx; Type: INDEX; Schema: public; Owner: postgres
   2889 --
   2890 
   2891 CREATE INDEX asset_exif_city_idx ON public.asset_exif USING btree (city);
   2892 
   2893 
   2894 --
   2895 -- Name: asset_exif_livePhotoCID_idx; Type: INDEX; Schema: public; Owner: postgres
   2896 --
   2897 
   2898 CREATE INDEX "asset_exif_livePhotoCID_idx" ON public.asset_exif USING btree ("livePhotoCID");
   2899 
   2900 
   2901 --
   2902 -- Name: asset_exif_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   2903 --
   2904 
   2905 CREATE INDEX "asset_exif_updateId_idx" ON public.asset_exif USING btree ("updateId");
   2906 
   2907 
   2908 --
   2909 -- Name: asset_face_assetId_personGroupId_idx; Type: INDEX; Schema: public; Owner: postgres
   2910 --
   2911 
   2912 CREATE INDEX "asset_face_assetId_personGroupId_idx" ON public.asset_face USING btree ("assetId", "personGroupId");
   2913 
   2914 
   2915 --
   2916 -- Name: asset_face_audit_assetFaceId_idx; Type: INDEX; Schema: public; Owner: postgres
   2917 --
   2918 
   2919 CREATE INDEX "asset_face_audit_assetFaceId_idx" ON public.asset_face_audit USING btree ("assetFaceId");
   2920 
   2921 
   2922 --
   2923 -- Name: asset_face_audit_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   2924 --
   2925 
   2926 CREATE INDEX "asset_face_audit_assetId_idx" ON public.asset_face_audit USING btree ("assetId");
   2927 
   2928 
   2929 --
   2930 -- Name: asset_face_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   2931 --
   2932 
   2933 CREATE INDEX "asset_face_audit_deletedAt_idx" ON public.asset_face_audit USING btree ("deletedAt");
   2934 
   2935 
   2936 --
   2937 -- Name: asset_face_personGroupId_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   2938 --
   2939 
   2940 CREATE INDEX "asset_face_personGroupId_assetId_idx" ON public.asset_face USING btree ("personGroupId", "assetId");
   2941 
   2942 
   2943 --
   2944 -- Name: asset_face_personGroupId_assetId_notDeleted_isVisible_idx; Type: INDEX; Schema: public; Owner: postgres
   2945 --
   2946 
   2947 CREATE INDEX "asset_face_personGroupId_assetId_notDeleted_isVisible_idx" ON public.asset_face USING btree ("personGroupId", "assetId") WHERE (("deletedAt" IS NULL) AND ("isVisible" IS TRUE));
   2948 
   2949 
   2950 --
   2951 -- Name: asset_fileCreatedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   2952 --
   2953 
   2954 CREATE INDEX "asset_fileCreatedAt_idx" ON public.asset USING btree ("fileCreatedAt");
   2955 
   2956 
   2957 --
   2958 -- Name: asset_file_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   2959 --
   2960 
   2961 CREATE INDEX "asset_file_assetId_idx" ON public.asset_file USING btree ("assetId");
   2962 
   2963 
   2964 --
   2965 -- Name: asset_file_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   2966 --
   2967 
   2968 CREATE INDEX "asset_file_updateId_idx" ON public.asset_file USING btree ("updateId");
   2969 
   2970 
   2971 --
   2972 -- Name: asset_id_stackId_idx; Type: INDEX; Schema: public; Owner: postgres
   2973 --
   2974 
   2975 CREATE INDEX "asset_id_stackId_idx" ON public.asset USING btree (id, "stackId");
   2976 
   2977 
   2978 --
   2979 -- Name: asset_id_timeline_notDeleted_idx; Type: INDEX; Schema: public; Owner: postgres
   2980 --
   2981 
   2982 CREATE INDEX "asset_id_timeline_notDeleted_idx" ON public.asset USING btree (id) WHERE ((visibility = 'timeline'::public.asset_visibility_enum) AND ("deletedAt" IS NULL));
   2983 
   2984 
   2985 --
   2986 -- Name: asset_libraryId_idx; Type: INDEX; Schema: public; Owner: postgres
   2987 --
   2988 
   2989 CREATE INDEX "asset_libraryId_idx" ON public.asset USING btree ("libraryId");
   2990 
   2991 
   2992 --
   2993 -- Name: asset_livePhotoVideoId_idx; Type: INDEX; Schema: public; Owner: postgres
   2994 --
   2995 
   2996 CREATE INDEX "asset_livePhotoVideoId_idx" ON public.asset USING btree ("livePhotoVideoId");
   2997 
   2998 
   2999 --
   3000 -- Name: asset_localDateTime_idx; Type: INDEX; Schema: public; Owner: postgres
   3001 --
   3002 
   3003 CREATE INDEX "asset_localDateTime_idx" ON public.asset USING btree (((("localDateTime" AT TIME ZONE 'UTC'::text))::date));
   3004 
   3005 
   3006 --
   3007 -- Name: asset_localDateTime_month_idx; Type: INDEX; Schema: public; Owner: postgres
   3008 --
   3009 
   3010 CREATE INDEX "asset_localDateTime_month_idx" ON public.asset USING btree ((date_trunc('MONTH'::text, ("localDateTime" AT TIME ZONE 'UTC'::text)) AT TIME ZONE 'UTC'::text));
   3011 
   3012 
   3013 --
   3014 -- Name: asset_metadata_audit_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3015 --
   3016 
   3017 CREATE INDEX "asset_metadata_audit_assetId_idx" ON public.asset_metadata_audit USING btree ("assetId");
   3018 
   3019 
   3020 --
   3021 -- Name: asset_metadata_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   3022 --
   3023 
   3024 CREATE INDEX "asset_metadata_audit_deletedAt_idx" ON public.asset_metadata_audit USING btree ("deletedAt");
   3025 
   3026 
   3027 --
   3028 -- Name: asset_metadata_audit_key_idx; Type: INDEX; Schema: public; Owner: postgres
   3029 --
   3030 
   3031 CREATE INDEX asset_metadata_audit_key_idx ON public.asset_metadata_audit USING btree (key);
   3032 
   3033 
   3034 --
   3035 -- Name: asset_metadata_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3036 --
   3037 
   3038 CREATE INDEX "asset_metadata_updateId_idx" ON public.asset_metadata USING btree ("updateId");
   3039 
   3040 
   3041 --
   3042 -- Name: asset_metadata_updatedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   3043 --
   3044 
   3045 CREATE INDEX "asset_metadata_updatedAt_idx" ON public.asset_metadata USING btree ("updatedAt");
   3046 
   3047 
   3048 --
   3049 -- Name: asset_ocr_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3050 --
   3051 
   3052 CREATE INDEX "asset_ocr_assetId_idx" ON public.asset_ocr USING btree ("assetId");
   3053 
   3054 
   3055 --
   3056 -- Name: asset_ocr_audit_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3057 --
   3058 
   3059 CREATE INDEX "asset_ocr_audit_assetId_idx" ON public.asset_ocr_audit USING btree ("assetId");
   3060 
   3061 
   3062 --
   3063 -- Name: asset_ocr_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   3064 --
   3065 
   3066 CREATE INDEX "asset_ocr_audit_deletedAt_idx" ON public.asset_ocr_audit USING btree ("deletedAt");
   3067 
   3068 
   3069 --
   3070 -- Name: asset_ocr_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3071 --
   3072 
   3073 CREATE INDEX "asset_ocr_updateId_idx" ON public.asset_ocr USING btree ("updateId");
   3074 
   3075 
   3076 --
   3077 -- Name: asset_originalFileName_idx; Type: INDEX; Schema: public; Owner: postgres
   3078 --
   3079 
   3080 CREATE INDEX "asset_originalFileName_idx" ON public.asset USING btree ("originalFileName");
   3081 
   3082 
   3083 --
   3084 -- Name: asset_originalFilename_trigram_idx; Type: INDEX; Schema: public; Owner: postgres
   3085 --
   3086 
   3087 CREATE INDEX "asset_originalFilename_trigram_idx" ON public.asset USING gin (public.f_unaccent(("originalFileName")::text) public.gin_trgm_ops);
   3088 
   3089 
   3090 --
   3091 -- Name: asset_originalPath_libraryId_idx; Type: INDEX; Schema: public; Owner: postgres
   3092 --
   3093 
   3094 CREATE INDEX "asset_originalPath_libraryId_idx" ON public.asset USING btree ("originalPath", "libraryId");
   3095 
   3096 
   3097 --
   3098 -- Name: asset_ownerId_idx; Type: INDEX; Schema: public; Owner: postgres
   3099 --
   3100 
   3101 CREATE INDEX "asset_ownerId_idx" ON public.asset USING btree ("ownerId");
   3102 
   3103 
   3104 --
   3105 -- Name: asset_ownerId_libraryId_checksum_idx; Type: INDEX; Schema: public; Owner: postgres
   3106 --
   3107 
   3108 CREATE UNIQUE INDEX "asset_ownerId_libraryId_checksum_idx" ON public.asset USING btree ("ownerId", "libraryId", checksum) WHERE ("libraryId" IS NOT NULL);
   3109 
   3110 
   3111 --
   3112 -- Name: asset_stackId_idx; Type: INDEX; Schema: public; Owner: postgres
   3113 --
   3114 
   3115 CREATE INDEX "asset_stackId_idx" ON public.asset USING btree ("stackId");
   3116 
   3117 
   3118 --
   3119 -- Name: asset_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3120 --
   3121 
   3122 CREATE INDEX "asset_updateId_idx" ON public.asset USING btree ("updateId");
   3123 
   3124 
   3125 --
   3126 -- Name: clip_index; Type: INDEX; Schema: public; Owner: postgres
   3127 --
   3128 
   3129 CREATE INDEX clip_index ON public.smart_search USING vchordrq (embedding public.vector_cosine_ops) WITH (options='
   3130         residual_quantization = false
   3131         [build.internal]
   3132         lists = [1]
   3133         spherical_centroids = true
   3134         build_threads = 4
   3135         sampling_factor = 1024
   3136         ');
   3137 
   3138 
   3139 --
   3140 -- Name: cluster_group_request_clusterGroupId_idx; Type: INDEX; Schema: public; Owner: postgres
   3141 --
   3142 
   3143 CREATE INDEX "cluster_group_request_clusterGroupId_idx" ON public.cluster_group_request USING btree ("clusterGroupId");
   3144 
   3145 
   3146 --
   3147 -- Name: cluster_group_request_userId_idx; Type: INDEX; Schema: public; Owner: postgres
   3148 --
   3149 
   3150 CREATE INDEX "cluster_group_request_userId_idx" ON public.cluster_group_request USING btree ("userId");
   3151 
   3152 
   3153 --
   3154 -- Name: cluster_group_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3155 --
   3156 
   3157 CREATE INDEX "cluster_group_updateId_idx" ON public.cluster_group USING btree ("updateId");
   3158 
   3159 
   3160 --
   3161 -- Name: face_index; Type: INDEX; Schema: public; Owner: postgres
   3162 --
   3163 
   3164 CREATE INDEX face_index ON public.face_search USING vchordrq (embedding public.vector_cosine_ops) WITH (options='
   3165         residual_quantization = false
   3166         [build.internal]
   3167         lists = [1]
   3168         spherical_centroids = true
   3169         build_threads = 4
   3170         sampling_factor = 1024
   3171         ');
   3172 
   3173 
   3174 --
   3175 -- Name: idx_geodata_places_admin1_name; Type: INDEX; Schema: public; Owner: postgres
   3176 --
   3177 
   3178 CREATE INDEX idx_geodata_places_admin1_name ON public.geodata_places USING gin (public.f_unaccent(("admin1Name")::text) public.gin_trgm_ops);
   3179 
   3180 
   3181 --
   3182 -- Name: idx_geodata_places_admin2_name; Type: INDEX; Schema: public; Owner: postgres
   3183 --
   3184 
   3185 CREATE INDEX idx_geodata_places_admin2_name ON public.geodata_places USING gin (public.f_unaccent(("admin2Name")::text) public.gin_trgm_ops);
   3186 
   3187 
   3188 --
   3189 -- Name: idx_geodata_places_alternate_names; Type: INDEX; Schema: public; Owner: postgres
   3190 --
   3191 
   3192 CREATE INDEX idx_geodata_places_alternate_names ON public.geodata_places USING gin (public.f_unaccent(("alternateNames")::text) public.gin_trgm_ops);
   3193 
   3194 
   3195 --
   3196 -- Name: idx_geodata_places_name; Type: INDEX; Schema: public; Owner: postgres
   3197 --
   3198 
   3199 CREATE INDEX idx_geodata_places_name ON public.geodata_places USING gin (public.f_unaccent((name)::text) public.gin_trgm_ops);
   3200 
   3201 
   3202 --
   3203 -- Name: idx_ocr_search_text; Type: INDEX; Schema: public; Owner: postgres
   3204 --
   3205 
   3206 CREATE INDEX idx_ocr_search_text ON public.ocr_search USING gin (public.f_unaccent(text) public.gin_trgm_ops);
   3207 
   3208 
   3209 --
   3210 -- Name: idx_person_name_trigram; Type: INDEX; Schema: public; Owner: postgres
   3211 --
   3212 
   3213 CREATE INDEX idx_person_name_trigram ON public.person USING gin (public.f_unaccent((name)::text) public.gin_trgm_ops);
   3214 
   3215 
   3216 --
   3217 -- Name: integrity_report_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3218 --
   3219 
   3220 CREATE INDEX "integrity_report_assetId_idx" ON public.integrity_report USING btree ("assetId");
   3221 
   3222 
   3223 --
   3224 -- Name: integrity_report_fileAssetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3225 --
   3226 
   3227 CREATE INDEX "integrity_report_fileAssetId_idx" ON public.integrity_report USING btree ("fileAssetId");
   3228 
   3229 
   3230 --
   3231 -- Name: library_ownerId_idx; Type: INDEX; Schema: public; Owner: postgres
   3232 --
   3233 
   3234 CREATE INDEX "library_ownerId_idx" ON public.library USING btree ("ownerId");
   3235 
   3236 
   3237 --
   3238 -- Name: library_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3239 --
   3240 
   3241 CREATE INDEX "library_updateId_idx" ON public.library USING btree ("updateId");
   3242 
   3243 
   3244 --
   3245 -- Name: memory_asset_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3246 --
   3247 
   3248 CREATE INDEX "memory_asset_assetId_idx" ON public.memory_asset USING btree ("assetId");
   3249 
   3250 
   3251 --
   3252 -- Name: memory_asset_audit_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3253 --
   3254 
   3255 CREATE INDEX "memory_asset_audit_assetId_idx" ON public.memory_asset_audit USING btree ("assetId");
   3256 
   3257 
   3258 --
   3259 -- Name: memory_asset_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   3260 --
   3261 
   3262 CREATE INDEX "memory_asset_audit_deletedAt_idx" ON public.memory_asset_audit USING btree ("deletedAt");
   3263 
   3264 
   3265 --
   3266 -- Name: memory_asset_audit_memoryId_idx; Type: INDEX; Schema: public; Owner: postgres
   3267 --
   3268 
   3269 CREATE INDEX "memory_asset_audit_memoryId_idx" ON public.memory_asset_audit USING btree ("memoryId");
   3270 
   3271 
   3272 --
   3273 -- Name: memory_asset_memoriesId_idx; Type: INDEX; Schema: public; Owner: postgres
   3274 --
   3275 
   3276 CREATE INDEX "memory_asset_memoriesId_idx" ON public.memory_asset USING btree ("memoriesId");
   3277 
   3278 
   3279 --
   3280 -- Name: memory_asset_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3281 --
   3282 
   3283 CREATE INDEX "memory_asset_updateId_idx" ON public.memory_asset USING btree ("updateId");
   3284 
   3285 
   3286 --
   3287 -- Name: memory_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   3288 --
   3289 
   3290 CREATE INDEX "memory_audit_deletedAt_idx" ON public.memory_audit USING btree ("deletedAt");
   3291 
   3292 
   3293 --
   3294 -- Name: memory_audit_memoryId_idx; Type: INDEX; Schema: public; Owner: postgres
   3295 --
   3296 
   3297 CREATE INDEX "memory_audit_memoryId_idx" ON public.memory_audit USING btree ("memoryId");
   3298 
   3299 
   3300 --
   3301 -- Name: memory_audit_userId_idx; Type: INDEX; Schema: public; Owner: postgres
   3302 --
   3303 
   3304 CREATE INDEX "memory_audit_userId_idx" ON public.memory_audit USING btree ("userId");
   3305 
   3306 
   3307 --
   3308 -- Name: memory_ownerId_idx; Type: INDEX; Schema: public; Owner: postgres
   3309 --
   3310 
   3311 CREATE INDEX "memory_ownerId_idx" ON public.memory USING btree ("ownerId");
   3312 
   3313 
   3314 --
   3315 -- Name: memory_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3316 --
   3317 
   3318 CREATE INDEX "memory_updateId_idx" ON public.memory USING btree ("updateId");
   3319 
   3320 
   3321 --
   3322 -- Name: notification_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3323 --
   3324 
   3325 CREATE INDEX "notification_updateId_idx" ON public.notification USING btree ("updateId");
   3326 
   3327 
   3328 --
   3329 -- Name: notification_userId_idx; Type: INDEX; Schema: public; Owner: postgres
   3330 --
   3331 
   3332 CREATE INDEX "notification_userId_idx" ON public.notification USING btree ("userId");
   3333 
   3334 
   3335 --
   3336 -- Name: partner_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   3337 --
   3338 
   3339 CREATE INDEX "partner_audit_deletedAt_idx" ON public.partner_audit USING btree ("deletedAt");
   3340 
   3341 
   3342 --
   3343 -- Name: partner_audit_sharedById_idx; Type: INDEX; Schema: public; Owner: postgres
   3344 --
   3345 
   3346 CREATE INDEX "partner_audit_sharedById_idx" ON public.partner_audit USING btree ("sharedById");
   3347 
   3348 
   3349 --
   3350 -- Name: partner_audit_sharedWithId_idx; Type: INDEX; Schema: public; Owner: postgres
   3351 --
   3352 
   3353 CREATE INDEX "partner_audit_sharedWithId_idx" ON public.partner_audit USING btree ("sharedWithId");
   3354 
   3355 
   3356 --
   3357 -- Name: partner_createId_idx; Type: INDEX; Schema: public; Owner: postgres
   3358 --
   3359 
   3360 CREATE INDEX "partner_createId_idx" ON public.partner USING btree ("createId");
   3361 
   3362 
   3363 --
   3364 -- Name: partner_sharedWithId_idx; Type: INDEX; Schema: public; Owner: postgres
   3365 --
   3366 
   3367 CREATE INDEX "partner_sharedWithId_idx" ON public.partner USING btree ("sharedWithId");
   3368 
   3369 
   3370 --
   3371 -- Name: partner_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3372 --
   3373 
   3374 CREATE INDEX "partner_updateId_idx" ON public.partner USING btree ("updateId");
   3375 
   3376 
   3377 --
   3378 -- Name: person_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   3379 --
   3380 
   3381 CREATE INDEX "person_audit_deletedAt_idx" ON public.person_audit USING btree ("deletedAt");
   3382 
   3383 
   3384 --
   3385 -- Name: person_audit_ownerId_idx; Type: INDEX; Schema: public; Owner: postgres
   3386 --
   3387 
   3388 CREATE INDEX "person_audit_ownerId_idx" ON public.person_audit USING btree ("ownerId");
   3389 
   3390 
   3391 --
   3392 -- Name: person_audit_personGroupId_idx; Type: INDEX; Schema: public; Owner: postgres
   3393 --
   3394 
   3395 CREATE INDEX "person_audit_personGroupId_idx" ON public.person_audit USING btree ("personGroupId");
   3396 
   3397 
   3398 --
   3399 -- Name: person_faceAssetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3400 --
   3401 
   3402 CREATE INDEX "person_faceAssetId_idx" ON public.person USING btree ("faceAssetId");
   3403 
   3404 
   3405 --
   3406 -- Name: person_group_audit_clusterGroupId_idx; Type: INDEX; Schema: public; Owner: postgres
   3407 --
   3408 
   3409 CREATE INDEX "person_group_audit_clusterGroupId_idx" ON public.person_group_audit USING btree ("clusterGroupId");
   3410 
   3411 
   3412 --
   3413 -- Name: person_group_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   3414 --
   3415 
   3416 CREATE INDEX "person_group_audit_deletedAt_idx" ON public.person_group_audit USING btree ("deletedAt");
   3417 
   3418 
   3419 --
   3420 -- Name: person_group_audit_personGroupId_idx; Type: INDEX; Schema: public; Owner: postgres
   3421 --
   3422 
   3423 CREATE INDEX "person_group_audit_personGroupId_idx" ON public.person_group_audit USING btree ("personGroupId");
   3424 
   3425 
   3426 --
   3427 -- Name: person_group_clusterGroupId_idx; Type: INDEX; Schema: public; Owner: postgres
   3428 --
   3429 
   3430 CREATE INDEX "person_group_clusterGroupId_idx" ON public.person_group USING btree ("clusterGroupId");
   3431 
   3432 
   3433 --
   3434 -- Name: person_group_createId_idx; Type: INDEX; Schema: public; Owner: postgres
   3435 --
   3436 
   3437 CREATE INDEX "person_group_createId_idx" ON public.person_group USING btree ("createId");
   3438 
   3439 
   3440 --
   3441 -- Name: person_group_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3442 --
   3443 
   3444 CREATE INDEX "person_group_updateId_idx" ON public.person_group USING btree ("updateId");
   3445 
   3446 
   3447 --
   3448 -- Name: person_personGroupId_idx; Type: INDEX; Schema: public; Owner: postgres
   3449 --
   3450 
   3451 CREATE INDEX "person_personGroupId_idx" ON public.person USING btree ("personGroupId");
   3452 
   3453 
   3454 --
   3455 -- Name: person_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3456 --
   3457 
   3458 CREATE INDEX "person_updateId_idx" ON public.person USING btree ("updateId");
   3459 
   3460 
   3461 --
   3462 -- Name: plugin_method_pluginId_idx; Type: INDEX; Schema: public; Owner: postgres
   3463 --
   3464 
   3465 CREATE INDEX "plugin_method_pluginId_idx" ON public.plugin_method USING btree ("pluginId");
   3466 
   3467 
   3468 --
   3469 -- Name: plugin_name_idx; Type: INDEX; Schema: public; Owner: postgres
   3470 --
   3471 
   3472 CREATE INDEX plugin_name_idx ON public.plugin USING btree (name);
   3473 
   3474 
   3475 --
   3476 -- Name: session_oauthSid_idx; Type: INDEX; Schema: public; Owner: postgres
   3477 --
   3478 
   3479 CREATE INDEX "session_oauthSid_idx" ON public.session USING btree ("oauthSid");
   3480 
   3481 
   3482 --
   3483 -- Name: session_parentId_idx; Type: INDEX; Schema: public; Owner: postgres
   3484 --
   3485 
   3486 CREATE INDEX "session_parentId_idx" ON public.session USING btree ("parentId");
   3487 
   3488 
   3489 --
   3490 -- Name: session_sync_checkpoint_sessionId_idx; Type: INDEX; Schema: public; Owner: postgres
   3491 --
   3492 
   3493 CREATE INDEX "session_sync_checkpoint_sessionId_idx" ON public.session_sync_checkpoint USING btree ("sessionId");
   3494 
   3495 
   3496 --
   3497 -- Name: session_sync_checkpoint_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3498 --
   3499 
   3500 CREATE INDEX "session_sync_checkpoint_updateId_idx" ON public.session_sync_checkpoint USING btree ("updateId");
   3501 
   3502 
   3503 --
   3504 -- Name: session_token_idx; Type: INDEX; Schema: public; Owner: postgres
   3505 --
   3506 
   3507 CREATE INDEX session_token_idx ON public.session USING btree (token);
   3508 
   3509 
   3510 --
   3511 -- Name: session_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3512 --
   3513 
   3514 CREATE INDEX "session_updateId_idx" ON public.session USING btree ("updateId");
   3515 
   3516 
   3517 --
   3518 -- Name: session_userId_idx; Type: INDEX; Schema: public; Owner: postgres
   3519 --
   3520 
   3521 CREATE INDEX "session_userId_idx" ON public.session USING btree ("userId");
   3522 
   3523 
   3524 --
   3525 -- Name: shared_link_albumId_idx; Type: INDEX; Schema: public; Owner: postgres
   3526 --
   3527 
   3528 CREATE INDEX "shared_link_albumId_idx" ON public.shared_link USING btree ("albumId");
   3529 
   3530 
   3531 --
   3532 -- Name: shared_link_asset_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3533 --
   3534 
   3535 CREATE INDEX "shared_link_asset_assetId_idx" ON public.shared_link_asset USING btree ("assetId");
   3536 
   3537 
   3538 --
   3539 -- Name: shared_link_asset_sharedLinkId_idx; Type: INDEX; Schema: public; Owner: postgres
   3540 --
   3541 
   3542 CREATE INDEX "shared_link_asset_sharedLinkId_idx" ON public.shared_link_asset USING btree ("sharedLinkId");
   3543 
   3544 
   3545 --
   3546 -- Name: shared_link_key_idx; Type: INDEX; Schema: public; Owner: postgres
   3547 --
   3548 
   3549 CREATE INDEX shared_link_key_idx ON public.shared_link USING btree (key);
   3550 
   3551 
   3552 --
   3553 -- Name: shared_link_userId_idx; Type: INDEX; Schema: public; Owner: postgres
   3554 --
   3555 
   3556 CREATE INDEX "shared_link_userId_idx" ON public.shared_link USING btree ("userId");
   3557 
   3558 
   3559 --
   3560 -- Name: stack_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   3561 --
   3562 
   3563 CREATE INDEX "stack_audit_deletedAt_idx" ON public.stack_audit USING btree ("deletedAt");
   3564 
   3565 
   3566 --
   3567 -- Name: stack_ownerId_idx; Type: INDEX; Schema: public; Owner: postgres
   3568 --
   3569 
   3570 CREATE INDEX "stack_ownerId_idx" ON public.stack USING btree ("ownerId");
   3571 
   3572 
   3573 --
   3574 -- Name: stack_primaryAssetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3575 --
   3576 
   3577 CREATE INDEX "stack_primaryAssetId_idx" ON public.stack USING btree ("primaryAssetId");
   3578 
   3579 
   3580 --
   3581 -- Name: tag_asset_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3582 --
   3583 
   3584 CREATE INDEX "tag_asset_assetId_idx" ON public.tag_asset USING btree ("assetId");
   3585 
   3586 
   3587 --
   3588 -- Name: tag_asset_assetId_tagId_idx; Type: INDEX; Schema: public; Owner: postgres
   3589 --
   3590 
   3591 CREATE INDEX "tag_asset_assetId_tagId_idx" ON public.tag_asset USING btree ("assetId", "tagId");
   3592 
   3593 
   3594 --
   3595 -- Name: tag_asset_tagId_idx; Type: INDEX; Schema: public; Owner: postgres
   3596 --
   3597 
   3598 CREATE INDEX "tag_asset_tagId_idx" ON public.tag_asset USING btree ("tagId");
   3599 
   3600 
   3601 --
   3602 -- Name: tag_closure_id_ancestor_idx; Type: INDEX; Schema: public; Owner: postgres
   3603 --
   3604 
   3605 CREATE INDEX tag_closure_id_ancestor_idx ON public.tag_closure USING btree (id_ancestor);
   3606 
   3607 
   3608 --
   3609 -- Name: tag_closure_id_descendant_idx; Type: INDEX; Schema: public; Owner: postgres
   3610 --
   3611 
   3612 CREATE INDEX tag_closure_id_descendant_idx ON public.tag_closure USING btree (id_descendant);
   3613 
   3614 
   3615 --
   3616 -- Name: tag_parentId_idx; Type: INDEX; Schema: public; Owner: postgres
   3617 --
   3618 
   3619 CREATE INDEX "tag_parentId_idx" ON public.tag USING btree ("parentId");
   3620 
   3621 
   3622 --
   3623 -- Name: tag_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3624 --
   3625 
   3626 CREATE INDEX "tag_updateId_idx" ON public.tag USING btree ("updateId");
   3627 
   3628 
   3629 --
   3630 -- Name: user_audit_deletedAt_idx; Type: INDEX; Schema: public; Owner: postgres
   3631 --
   3632 
   3633 CREATE INDEX "user_audit_deletedAt_idx" ON public.user_audit USING btree ("deletedAt");
   3634 
   3635 
   3636 --
   3637 -- Name: user_clusterGroupId_idx; Type: INDEX; Schema: public; Owner: postgres
   3638 --
   3639 
   3640 CREATE INDEX "user_clusterGroupId_idx" ON public."user" USING btree ("clusterGroupId");
   3641 
   3642 
   3643 --
   3644 -- Name: user_updateId_idx; Type: INDEX; Schema: public; Owner: postgres
   3645 --
   3646 
   3647 CREATE INDEX "user_updateId_idx" ON public."user" USING btree ("updateId");
   3648 
   3649 
   3650 --
   3651 -- Name: user_updatedAt_id_idx; Type: INDEX; Schema: public; Owner: postgres
   3652 --
   3653 
   3654 CREATE INDEX "user_updatedAt_id_idx" ON public."user" USING btree ("updatedAt", id);
   3655 
   3656 
   3657 --
   3658 -- Name: video_stream_session_assetId_idx; Type: INDEX; Schema: public; Owner: postgres
   3659 --
   3660 
   3661 CREATE INDEX "video_stream_session_assetId_idx" ON public.video_stream_session USING btree ("assetId");
   3662 
   3663 
   3664 --
   3665 -- Name: video_stream_session_expiresAt_idx; Type: INDEX; Schema: public; Owner: postgres
   3666 --
   3667 
   3668 CREATE INDEX "video_stream_session_expiresAt_idx" ON public.video_stream_session USING btree ("expiresAt");
   3669 
   3670 
   3671 --
   3672 -- Name: video_stream_variant_sessionId_bitrate_resolution_codec_idx; Type: INDEX; Schema: public; Owner: postgres
   3673 --
   3674 
   3675 CREATE UNIQUE INDEX "video_stream_variant_sessionId_bitrate_resolution_codec_idx" ON public.video_stream_variant USING btree ("sessionId", bitrate, resolution, codec);
   3676 
   3677 
   3678 --
   3679 -- Name: workflow_log_workflowId_idx; Type: INDEX; Schema: public; Owner: postgres
   3680 --
   3681 
   3682 CREATE INDEX "workflow_log_workflowId_idx" ON public.workflow_log USING btree ("workflowId");
   3683 
   3684 
   3685 --
   3686 -- Name: workflow_log_workflowStepId_idx; Type: INDEX; Schema: public; Owner: postgres
   3687 --
   3688 
   3689 CREATE INDEX "workflow_log_workflowStepId_idx" ON public.workflow_log USING btree ("workflowStepId");
   3690 
   3691 
   3692 --
   3693 -- Name: workflow_ownerId_idx; Type: INDEX; Schema: public; Owner: postgres
   3694 --
   3695 
   3696 CREATE INDEX "workflow_ownerId_idx" ON public.workflow USING btree ("ownerId");
   3697 
   3698 
   3699 --
   3700 -- Name: workflow_step_pluginMethodId_idx; Type: INDEX; Schema: public; Owner: postgres
   3701 --
   3702 
   3703 CREATE INDEX "workflow_step_pluginMethodId_idx" ON public.workflow_step USING btree ("pluginMethodId");
   3704 
   3705 
   3706 --
   3707 -- Name: workflow_step_workflowId_idx; Type: INDEX; Schema: public; Owner: postgres
   3708 --
   3709 
   3710 CREATE INDEX "workflow_step_workflowId_idx" ON public.workflow_step USING btree ("workflowId");
   3711 
   3712 
   3713 --
   3714 -- Name: activity activity_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3715 --
   3716 
   3717 CREATE TRIGGER "activity_updatedAt" BEFORE UPDATE ON public.activity FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3718 
   3719 
   3720 --
   3721 -- Name: album_asset album_asset_delete_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3722 --
   3723 
   3724 CREATE TRIGGER album_asset_delete_audit AFTER DELETE ON public.album_asset REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() <= 1)) EXECUTE FUNCTION public.album_asset_delete_audit();
   3725 
   3726 
   3727 --
   3728 -- Name: album_asset album_asset_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3729 --
   3730 
   3731 CREATE TRIGGER "album_asset_updatedAt" BEFORE UPDATE ON public.album_asset FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3732 
   3733 
   3734 --
   3735 -- Name: album album_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3736 --
   3737 
   3738 CREATE TRIGGER "album_updatedAt" BEFORE UPDATE ON public.album FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3739 
   3740 
   3741 --
   3742 -- Name: album_user album_user_after_insert; Type: TRIGGER; Schema: public; Owner: postgres
   3743 --
   3744 
   3745 CREATE TRIGGER album_user_after_insert AFTER INSERT ON public.album_user REFERENCING NEW TABLE AS inserted_rows FOR EACH STATEMENT EXECUTE FUNCTION public.album_user_after_insert();
   3746 
   3747 
   3748 --
   3749 -- Name: album_user album_user_delete; Type: TRIGGER; Schema: public; Owner: postgres
   3750 --
   3751 
   3752 CREATE TRIGGER album_user_delete AFTER DELETE ON public.album_user REFERENCING OLD TABLE AS old FOR EACH ROW EXECUTE FUNCTION public.album_user_delete();
   3753 
   3754 
   3755 --
   3756 -- Name: album_user album_user_delete_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3757 --
   3758 
   3759 CREATE TRIGGER album_user_delete_audit AFTER DELETE ON public.album_user REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() <= 1)) EXECUTE FUNCTION public.album_user_delete_audit();
   3760 
   3761 
   3762 --
   3763 -- Name: album_user album_user_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3764 --
   3765 
   3766 CREATE TRIGGER "album_user_updatedAt" BEFORE UPDATE ON public.album_user FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3767 
   3768 
   3769 --
   3770 -- Name: api_key api_key_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3771 --
   3772 
   3773 CREATE TRIGGER "api_key_updatedAt" BEFORE UPDATE ON public.api_key FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3774 
   3775 
   3776 --
   3777 -- Name: asset asset_delete_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3778 --
   3779 
   3780 CREATE TRIGGER asset_delete_audit AFTER DELETE ON public.asset REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.asset_delete_audit();
   3781 
   3782 
   3783 --
   3784 -- Name: asset_edit asset_edit_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3785 --
   3786 
   3787 CREATE TRIGGER asset_edit_audit AFTER DELETE ON public.asset_edit REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.asset_edit_audit();
   3788 
   3789 
   3790 --
   3791 -- Name: asset_edit asset_edit_delete; Type: TRIGGER; Schema: public; Owner: postgres
   3792 --
   3793 
   3794 CREATE TRIGGER asset_edit_delete AFTER DELETE ON public.asset_edit REFERENCING OLD TABLE AS deleted_edit FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.asset_edit_delete();
   3795 
   3796 
   3797 --
   3798 -- Name: asset_edit asset_edit_insert; Type: TRIGGER; Schema: public; Owner: postgres
   3799 --
   3800 
   3801 CREATE TRIGGER asset_edit_insert AFTER INSERT ON public.asset_edit REFERENCING NEW TABLE AS inserted_edit FOR EACH STATEMENT EXECUTE FUNCTION public.asset_edit_insert();
   3802 
   3803 
   3804 --
   3805 -- Name: asset_edit asset_edit_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3806 --
   3807 
   3808 CREATE TRIGGER "asset_edit_updatedAt" BEFORE UPDATE ON public.asset_edit FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3809 
   3810 
   3811 --
   3812 -- Name: asset_exif asset_exif_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3813 --
   3814 
   3815 CREATE TRIGGER "asset_exif_updatedAt" BEFORE UPDATE ON public.asset_exif FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3816 
   3817 
   3818 --
   3819 -- Name: asset_face asset_face_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3820 --
   3821 
   3822 CREATE TRIGGER asset_face_audit AFTER DELETE ON public.asset_face REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.asset_face_audit();
   3823 
   3824 
   3825 --
   3826 -- Name: asset_face asset_face_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3827 --
   3828 
   3829 CREATE TRIGGER "asset_face_updatedAt" BEFORE UPDATE ON public.asset_face FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3830 
   3831 
   3832 --
   3833 -- Name: asset_file asset_file_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3834 --
   3835 
   3836 CREATE TRIGGER "asset_file_updatedAt" BEFORE UPDATE ON public.asset_file FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3837 
   3838 
   3839 --
   3840 -- Name: asset_metadata asset_metadata_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3841 --
   3842 
   3843 CREATE TRIGGER asset_metadata_audit AFTER DELETE ON public.asset_metadata REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.asset_metadata_audit();
   3844 
   3845 
   3846 --
   3847 -- Name: asset_metadata asset_metadata_updated_at; Type: TRIGGER; Schema: public; Owner: postgres
   3848 --
   3849 
   3850 CREATE TRIGGER asset_metadata_updated_at BEFORE UPDATE ON public.asset_metadata FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3851 
   3852 
   3853 --
   3854 -- Name: asset_ocr asset_ocr_delete_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3855 --
   3856 
   3857 CREATE TRIGGER asset_ocr_delete_audit AFTER DELETE ON public.asset_ocr REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.asset_ocr_delete_audit();
   3858 
   3859 
   3860 --
   3861 -- Name: asset_ocr asset_ocr_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3862 --
   3863 
   3864 CREATE TRIGGER "asset_ocr_updatedAt" BEFORE UPDATE ON public.asset_ocr FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3865 
   3866 
   3867 --
   3868 -- Name: asset asset_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3869 --
   3870 
   3871 CREATE TRIGGER "asset_updatedAt" BEFORE UPDATE ON public.asset FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3872 
   3873 
   3874 --
   3875 -- Name: cluster_group cluster_group_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3876 --
   3877 
   3878 CREATE TRIGGER "cluster_group_updatedAt" BEFORE UPDATE ON public.cluster_group FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3879 
   3880 
   3881 --
   3882 -- Name: library library_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3883 --
   3884 
   3885 CREATE TRIGGER "library_updatedAt" BEFORE UPDATE ON public.library FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3886 
   3887 
   3888 --
   3889 -- Name: memory_asset memory_asset_delete_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3890 --
   3891 
   3892 CREATE TRIGGER memory_asset_delete_audit AFTER DELETE ON public.memory_asset REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() <= 1)) EXECUTE FUNCTION public.memory_asset_delete_audit();
   3893 
   3894 
   3895 --
   3896 -- Name: memory_asset memory_asset_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3897 --
   3898 
   3899 CREATE TRIGGER "memory_asset_updatedAt" BEFORE UPDATE ON public.memory_asset FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3900 
   3901 
   3902 --
   3903 -- Name: memory memory_delete_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3904 --
   3905 
   3906 CREATE TRIGGER memory_delete_audit AFTER DELETE ON public.memory REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.memory_delete_audit();
   3907 
   3908 
   3909 --
   3910 -- Name: memory memory_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3911 --
   3912 
   3913 CREATE TRIGGER "memory_updatedAt" BEFORE UPDATE ON public.memory FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3914 
   3915 
   3916 --
   3917 -- Name: notification notification_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3918 --
   3919 
   3920 CREATE TRIGGER "notification_updatedAt" BEFORE UPDATE ON public.notification FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3921 
   3922 
   3923 --
   3924 -- Name: partner partner_delete_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3925 --
   3926 
   3927 CREATE TRIGGER partner_delete_audit AFTER DELETE ON public.partner REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.partner_delete_audit();
   3928 
   3929 
   3930 --
   3931 -- Name: partner partner_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3932 --
   3933 
   3934 CREATE TRIGGER "partner_updatedAt" BEFORE UPDATE ON public.partner FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3935 
   3936 
   3937 --
   3938 -- Name: person person_delete_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3939 --
   3940 
   3941 CREATE TRIGGER person_delete_audit AFTER DELETE ON public.person REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() <= 1)) EXECUTE FUNCTION public.person_delete_audit();
   3942 
   3943 
   3944 --
   3945 -- Name: person_group person_group_delete_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3946 --
   3947 
   3948 CREATE TRIGGER person_group_delete_audit AFTER DELETE ON public.person_group REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.person_group_delete_audit();
   3949 
   3950 
   3951 --
   3952 -- Name: person_group person_group_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3953 --
   3954 
   3955 CREATE TRIGGER "person_group_updatedAt" BEFORE UPDATE ON public.person_group FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3956 
   3957 
   3958 --
   3959 -- Name: person person_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3960 --
   3961 
   3962 CREATE TRIGGER "person_updatedAt" BEFORE UPDATE ON public.person FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3963 
   3964 
   3965 --
   3966 -- Name: session_sync_checkpoint session_sync_checkpoint_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3967 --
   3968 
   3969 CREATE TRIGGER "session_sync_checkpoint_updatedAt" BEFORE UPDATE ON public.session_sync_checkpoint FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3970 
   3971 
   3972 --
   3973 -- Name: session session_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3974 --
   3975 
   3976 CREATE TRIGGER "session_updatedAt" BEFORE UPDATE ON public.session FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3977 
   3978 
   3979 --
   3980 -- Name: stack stack_delete_audit; Type: TRIGGER; Schema: public; Owner: postgres
   3981 --
   3982 
   3983 CREATE TRIGGER stack_delete_audit AFTER DELETE ON public.stack REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.stack_delete_audit();
   3984 
   3985 
   3986 --
   3987 -- Name: stack stack_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3988 --
   3989 
   3990 CREATE TRIGGER "stack_updatedAt" BEFORE UPDATE ON public.stack FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3991 
   3992 
   3993 --
   3994 -- Name: tag tag_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   3995 --
   3996 
   3997 CREATE TRIGGER "tag_updatedAt" BEFORE UPDATE ON public.tag FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   3998 
   3999 
   4000 --
   4001 -- Name: user user_delete_audit; Type: TRIGGER; Schema: public; Owner: postgres
   4002 --
   4003 
   4004 CREATE TRIGGER user_delete_audit AFTER DELETE ON public."user" REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.user_delete_audit();
   4005 
   4006 
   4007 --
   4008 -- Name: user_metadata user_metadata_audit; Type: TRIGGER; Schema: public; Owner: postgres
   4009 --
   4010 
   4011 CREATE TRIGGER user_metadata_audit AFTER DELETE ON public.user_metadata REFERENCING OLD TABLE AS old FOR EACH STATEMENT WHEN ((pg_trigger_depth() = 0)) EXECUTE FUNCTION public.user_metadata_audit();
   4012 
   4013 
   4014 --
   4015 -- Name: user_metadata user_metadata_updated_at; Type: TRIGGER; Schema: public; Owner: postgres
   4016 --
   4017 
   4018 CREATE TRIGGER user_metadata_updated_at BEFORE UPDATE ON public.user_metadata FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   4019 
   4020 
   4021 --
   4022 -- Name: user user_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   4023 --
   4024 
   4025 CREATE TRIGGER "user_updatedAt" BEFORE UPDATE ON public."user" FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   4026 
   4027 
   4028 --
   4029 -- Name: workflow workflow_updatedAt; Type: TRIGGER; Schema: public; Owner: postgres
   4030 --
   4031 
   4032 CREATE TRIGGER "workflow_updatedAt" BEFORE UPDATE ON public.workflow FOR EACH ROW EXECUTE FUNCTION public.updated_at();
   4033 
   4034 
   4035 --
   4036 -- Name: activity activity_albumId_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4037 --
   4038 
   4039 ALTER TABLE ONLY public.activity
   4040     ADD CONSTRAINT "activity_albumId_assetId_fkey" FOREIGN KEY ("albumId", "assetId") REFERENCES public.album_asset("albumId", "assetId") ON DELETE CASCADE;
   4041 
   4042 
   4043 --
   4044 -- Name: activity activity_albumId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4045 --
   4046 
   4047 ALTER TABLE ONLY public.activity
   4048     ADD CONSTRAINT "activity_albumId_fkey" FOREIGN KEY ("albumId") REFERENCES public.album(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4049 
   4050 
   4051 --
   4052 -- Name: activity activity_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4053 --
   4054 
   4055 ALTER TABLE ONLY public.activity
   4056     ADD CONSTRAINT "activity_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4057 
   4058 
   4059 --
   4060 -- Name: activity activity_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4061 --
   4062 
   4063 ALTER TABLE ONLY public.activity
   4064     ADD CONSTRAINT "activity_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4065 
   4066 
   4067 --
   4068 -- Name: album album_albumThumbnailAssetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4069 --
   4070 
   4071 ALTER TABLE ONLY public.album
   4072     ADD CONSTRAINT "album_albumThumbnailAssetId_fkey" FOREIGN KEY ("albumThumbnailAssetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE SET NULL;
   4073 
   4074 
   4075 --
   4076 -- Name: album_asset album_asset_albumId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4077 --
   4078 
   4079 ALTER TABLE ONLY public.album_asset
   4080     ADD CONSTRAINT "album_asset_albumId_fkey" FOREIGN KEY ("albumId") REFERENCES public.album(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4081 
   4082 
   4083 --
   4084 -- Name: album_asset album_asset_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4085 --
   4086 
   4087 ALTER TABLE ONLY public.album_asset
   4088     ADD CONSTRAINT "album_asset_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4089 
   4090 
   4091 --
   4092 -- Name: album_asset_audit album_asset_audit_albumId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4093 --
   4094 
   4095 ALTER TABLE ONLY public.album_asset_audit
   4096     ADD CONSTRAINT "album_asset_audit_albumId_fkey" FOREIGN KEY ("albumId") REFERENCES public.album(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4097 
   4098 
   4099 --
   4100 -- Name: album_user album_user_albumId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4101 --
   4102 
   4103 ALTER TABLE ONLY public.album_user
   4104     ADD CONSTRAINT "album_user_albumId_fkey" FOREIGN KEY ("albumId") REFERENCES public.album(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4105 
   4106 
   4107 --
   4108 -- Name: album_user album_user_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4109 --
   4110 
   4111 ALTER TABLE ONLY public.album_user
   4112     ADD CONSTRAINT "album_user_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4113 
   4114 
   4115 --
   4116 -- Name: api_key api_key_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4117 --
   4118 
   4119 ALTER TABLE ONLY public.api_key
   4120     ADD CONSTRAINT "api_key_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4121 
   4122 
   4123 --
   4124 -- Name: asset_audio asset_audio_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4125 --
   4126 
   4127 ALTER TABLE ONLY public.asset_audio
   4128     ADD CONSTRAINT "asset_audio_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON DELETE CASCADE;
   4129 
   4130 
   4131 --
   4132 -- Name: asset_edit asset_edit_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4133 --
   4134 
   4135 ALTER TABLE ONLY public.asset_edit
   4136     ADD CONSTRAINT "asset_edit_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4137 
   4138 
   4139 --
   4140 -- Name: asset_exif asset_exif_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4141 --
   4142 
   4143 ALTER TABLE ONLY public.asset_exif
   4144     ADD CONSTRAINT "asset_exif_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON DELETE CASCADE;
   4145 
   4146 
   4147 --
   4148 -- Name: asset_face asset_face_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4149 --
   4150 
   4151 ALTER TABLE ONLY public.asset_face
   4152     ADD CONSTRAINT "asset_face_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4153 
   4154 
   4155 --
   4156 -- Name: asset_face asset_face_personGroupId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4157 --
   4158 
   4159 ALTER TABLE ONLY public.asset_face
   4160     ADD CONSTRAINT "asset_face_personGroupId_fkey" FOREIGN KEY ("personGroupId") REFERENCES public.person_group(id) ON UPDATE CASCADE ON DELETE SET NULL;
   4161 
   4162 
   4163 --
   4164 -- Name: asset_file asset_file_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4165 --
   4166 
   4167 ALTER TABLE ONLY public.asset_file
   4168     ADD CONSTRAINT "asset_file_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4169 
   4170 
   4171 --
   4172 -- Name: asset_job_status asset_job_status_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4173 --
   4174 
   4175 ALTER TABLE ONLY public.asset_job_status
   4176     ADD CONSTRAINT "asset_job_status_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4177 
   4178 
   4179 --
   4180 -- Name: asset_keyframe asset_keyframe_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4181 --
   4182 
   4183 ALTER TABLE ONLY public.asset_keyframe
   4184     ADD CONSTRAINT "asset_keyframe_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON DELETE CASCADE;
   4185 
   4186 
   4187 --
   4188 -- Name: asset asset_libraryId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4189 --
   4190 
   4191 ALTER TABLE ONLY public.asset
   4192     ADD CONSTRAINT "asset_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES public.library(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4193 
   4194 
   4195 --
   4196 -- Name: asset asset_livePhotoVideoId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4197 --
   4198 
   4199 ALTER TABLE ONLY public.asset
   4200     ADD CONSTRAINT "asset_livePhotoVideoId_fkey" FOREIGN KEY ("livePhotoVideoId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE SET NULL;
   4201 
   4202 
   4203 --
   4204 -- Name: asset_metadata asset_metadata_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4205 --
   4206 
   4207 ALTER TABLE ONLY public.asset_metadata
   4208     ADD CONSTRAINT "asset_metadata_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4209 
   4210 
   4211 --
   4212 -- Name: asset_ocr asset_ocr_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4213 --
   4214 
   4215 ALTER TABLE ONLY public.asset_ocr
   4216     ADD CONSTRAINT "asset_ocr_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4217 
   4218 
   4219 --
   4220 -- Name: asset asset_ownerId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4221 --
   4222 
   4223 ALTER TABLE ONLY public.asset
   4224     ADD CONSTRAINT "asset_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4225 
   4226 
   4227 --
   4228 -- Name: asset asset_stackId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4229 --
   4230 
   4231 ALTER TABLE ONLY public.asset
   4232     ADD CONSTRAINT "asset_stackId_fkey" FOREIGN KEY ("stackId") REFERENCES public.stack(id) ON UPDATE CASCADE ON DELETE SET NULL;
   4233 
   4234 
   4235 --
   4236 -- Name: asset_video asset_video_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4237 --
   4238 
   4239 ALTER TABLE ONLY public.asset_video
   4240     ADD CONSTRAINT "asset_video_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON DELETE CASCADE;
   4241 
   4242 
   4243 --
   4244 -- Name: cluster_group_request cluster_group_request_clusterGroupId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4245 --
   4246 
   4247 ALTER TABLE ONLY public.cluster_group_request
   4248     ADD CONSTRAINT "cluster_group_request_clusterGroupId_fkey" FOREIGN KEY ("clusterGroupId") REFERENCES public.cluster_group(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4249 
   4250 
   4251 --
   4252 -- Name: cluster_group_request cluster_group_request_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4253 --
   4254 
   4255 ALTER TABLE ONLY public.cluster_group_request
   4256     ADD CONSTRAINT "cluster_group_request_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4257 
   4258 
   4259 --
   4260 -- Name: face_search face_search_faceId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4261 --
   4262 
   4263 ALTER TABLE ONLY public.face_search
   4264     ADD CONSTRAINT "face_search_faceId_fkey" FOREIGN KEY ("faceId") REFERENCES public.asset_face(id) ON DELETE CASCADE;
   4265 
   4266 
   4267 --
   4268 -- Name: integrity_report integrity_report_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4269 --
   4270 
   4271 ALTER TABLE ONLY public.integrity_report
   4272     ADD CONSTRAINT "integrity_report_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4273 
   4274 
   4275 --
   4276 -- Name: integrity_report integrity_report_fileAssetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4277 --
   4278 
   4279 ALTER TABLE ONLY public.integrity_report
   4280     ADD CONSTRAINT "integrity_report_fileAssetId_fkey" FOREIGN KEY ("fileAssetId") REFERENCES public.asset_file(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4281 
   4282 
   4283 --
   4284 -- Name: library library_ownerId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4285 --
   4286 
   4287 ALTER TABLE ONLY public.library
   4288     ADD CONSTRAINT "library_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4289 
   4290 
   4291 --
   4292 -- Name: memory_asset memory_asset_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4293 --
   4294 
   4295 ALTER TABLE ONLY public.memory_asset
   4296     ADD CONSTRAINT "memory_asset_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4297 
   4298 
   4299 --
   4300 -- Name: memory_asset_audit memory_asset_audit_memoryId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4301 --
   4302 
   4303 ALTER TABLE ONLY public.memory_asset_audit
   4304     ADD CONSTRAINT "memory_asset_audit_memoryId_fkey" FOREIGN KEY ("memoryId") REFERENCES public.memory(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4305 
   4306 
   4307 --
   4308 -- Name: memory_asset memory_asset_memoriesId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4309 --
   4310 
   4311 ALTER TABLE ONLY public.memory_asset
   4312     ADD CONSTRAINT "memory_asset_memoriesId_fkey" FOREIGN KEY ("memoriesId") REFERENCES public.memory(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4313 
   4314 
   4315 --
   4316 -- Name: memory memory_ownerId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4317 --
   4318 
   4319 ALTER TABLE ONLY public.memory
   4320     ADD CONSTRAINT "memory_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4321 
   4322 
   4323 --
   4324 -- Name: notification notification_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4325 --
   4326 
   4327 ALTER TABLE ONLY public.notification
   4328     ADD CONSTRAINT "notification_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4329 
   4330 
   4331 --
   4332 -- Name: ocr_search ocr_search_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4333 --
   4334 
   4335 ALTER TABLE ONLY public.ocr_search
   4336     ADD CONSTRAINT "ocr_search_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4337 
   4338 
   4339 --
   4340 -- Name: partner partner_sharedById_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4341 --
   4342 
   4343 ALTER TABLE ONLY public.partner
   4344     ADD CONSTRAINT "partner_sharedById_fkey" FOREIGN KEY ("sharedById") REFERENCES public."user"(id) ON DELETE CASCADE;
   4345 
   4346 
   4347 --
   4348 -- Name: partner partner_sharedWithId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4349 --
   4350 
   4351 ALTER TABLE ONLY public.partner
   4352     ADD CONSTRAINT "partner_sharedWithId_fkey" FOREIGN KEY ("sharedWithId") REFERENCES public."user"(id) ON DELETE CASCADE;
   4353 
   4354 
   4355 --
   4356 -- Name: person person_faceAssetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4357 --
   4358 
   4359 ALTER TABLE ONLY public.person
   4360     ADD CONSTRAINT "person_faceAssetId_fkey" FOREIGN KEY ("faceAssetId") REFERENCES public.asset_face(id) ON DELETE SET NULL;
   4361 
   4362 
   4363 --
   4364 -- Name: person_group person_group_clusterGroupId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4365 --
   4366 
   4367 ALTER TABLE ONLY public.person_group
   4368     ADD CONSTRAINT "person_group_clusterGroupId_fkey" FOREIGN KEY ("clusterGroupId") REFERENCES public.cluster_group(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4369 
   4370 
   4371 --
   4372 -- Name: person person_ownerId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4373 --
   4374 
   4375 ALTER TABLE ONLY public.person
   4376     ADD CONSTRAINT "person_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4377 
   4378 
   4379 --
   4380 -- Name: person person_personGroupId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4381 --
   4382 
   4383 ALTER TABLE ONLY public.person
   4384     ADD CONSTRAINT "person_personGroupId_fkey" FOREIGN KEY ("personGroupId") REFERENCES public.person_group(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4385 
   4386 
   4387 --
   4388 -- Name: plugin_method plugin_method_pluginId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4389 --
   4390 
   4391 ALTER TABLE ONLY public.plugin_method
   4392     ADD CONSTRAINT "plugin_method_pluginId_fkey" FOREIGN KEY ("pluginId") REFERENCES public.plugin(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4393 
   4394 
   4395 --
   4396 -- Name: session session_parentId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4397 --
   4398 
   4399 ALTER TABLE ONLY public.session
   4400     ADD CONSTRAINT "session_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES public.session(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4401 
   4402 
   4403 --
   4404 -- Name: session_sync_checkpoint session_sync_checkpoint_sessionId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4405 --
   4406 
   4407 ALTER TABLE ONLY public.session_sync_checkpoint
   4408     ADD CONSTRAINT "session_sync_checkpoint_sessionId_fkey" FOREIGN KEY ("sessionId") REFERENCES public.session(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4409 
   4410 
   4411 --
   4412 -- Name: session session_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4413 --
   4414 
   4415 ALTER TABLE ONLY public.session
   4416     ADD CONSTRAINT "session_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4417 
   4418 
   4419 --
   4420 -- Name: shared_link shared_link_albumId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4421 --
   4422 
   4423 ALTER TABLE ONLY public.shared_link
   4424     ADD CONSTRAINT "shared_link_albumId_fkey" FOREIGN KEY ("albumId") REFERENCES public.album(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4425 
   4426 
   4427 --
   4428 -- Name: shared_link_asset shared_link_asset_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4429 --
   4430 
   4431 ALTER TABLE ONLY public.shared_link_asset
   4432     ADD CONSTRAINT "shared_link_asset_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4433 
   4434 
   4435 --
   4436 -- Name: shared_link_asset shared_link_asset_sharedLinkId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4437 --
   4438 
   4439 ALTER TABLE ONLY public.shared_link_asset
   4440     ADD CONSTRAINT "shared_link_asset_sharedLinkId_fkey" FOREIGN KEY ("sharedLinkId") REFERENCES public.shared_link(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4441 
   4442 
   4443 --
   4444 -- Name: shared_link shared_link_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4445 --
   4446 
   4447 ALTER TABLE ONLY public.shared_link
   4448     ADD CONSTRAINT "shared_link_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4449 
   4450 
   4451 --
   4452 -- Name: smart_search smart_search_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4453 --
   4454 
   4455 ALTER TABLE ONLY public.smart_search
   4456     ADD CONSTRAINT "smart_search_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON DELETE CASCADE;
   4457 
   4458 
   4459 --
   4460 -- Name: stack stack_ownerId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4461 --
   4462 
   4463 ALTER TABLE ONLY public.stack
   4464     ADD CONSTRAINT "stack_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4465 
   4466 
   4467 --
   4468 -- Name: stack stack_primaryAssetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4469 --
   4470 
   4471 ALTER TABLE ONLY public.stack
   4472     ADD CONSTRAINT "stack_primaryAssetId_fkey" FOREIGN KEY ("primaryAssetId") REFERENCES public.asset(id);
   4473 
   4474 
   4475 --
   4476 -- Name: tag_asset tag_asset_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4477 --
   4478 
   4479 ALTER TABLE ONLY public.tag_asset
   4480     ADD CONSTRAINT "tag_asset_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4481 
   4482 
   4483 --
   4484 -- Name: tag_asset tag_asset_tagId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4485 --
   4486 
   4487 ALTER TABLE ONLY public.tag_asset
   4488     ADD CONSTRAINT "tag_asset_tagId_fkey" FOREIGN KEY ("tagId") REFERENCES public.tag(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4489 
   4490 
   4491 --
   4492 -- Name: tag_closure tag_closure_id_ancestor_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4493 --
   4494 
   4495 ALTER TABLE ONLY public.tag_closure
   4496     ADD CONSTRAINT tag_closure_id_ancestor_fkey FOREIGN KEY (id_ancestor) REFERENCES public.tag(id) ON DELETE CASCADE;
   4497 
   4498 
   4499 --
   4500 -- Name: tag_closure tag_closure_id_descendant_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4501 --
   4502 
   4503 ALTER TABLE ONLY public.tag_closure
   4504     ADD CONSTRAINT tag_closure_id_descendant_fkey FOREIGN KEY (id_descendant) REFERENCES public.tag(id) ON DELETE CASCADE;
   4505 
   4506 
   4507 --
   4508 -- Name: tag tag_parentId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4509 --
   4510 
   4511 ALTER TABLE ONLY public.tag
   4512     ADD CONSTRAINT "tag_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES public.tag(id) ON DELETE CASCADE;
   4513 
   4514 
   4515 --
   4516 -- Name: tag tag_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4517 --
   4518 
   4519 ALTER TABLE ONLY public.tag
   4520     ADD CONSTRAINT "tag_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4521 
   4522 
   4523 --
   4524 -- Name: user user_clusterGroupId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4525 --
   4526 
   4527 ALTER TABLE ONLY public."user"
   4528     ADD CONSTRAINT "user_clusterGroupId_fkey" FOREIGN KEY ("clusterGroupId") REFERENCES public.cluster_group(id) ON UPDATE CASCADE;
   4529 
   4530 
   4531 --
   4532 -- Name: user_metadata user_metadata_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4533 --
   4534 
   4535 ALTER TABLE ONLY public.user_metadata
   4536     ADD CONSTRAINT "user_metadata_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4537 
   4538 
   4539 --
   4540 -- Name: video_stream_segment video_stream_segment_variantId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4541 --
   4542 
   4543 ALTER TABLE ONLY public.video_stream_segment
   4544     ADD CONSTRAINT "video_stream_segment_variantId_fkey" FOREIGN KEY ("variantId") REFERENCES public.video_stream_variant(id) ON DELETE CASCADE;
   4545 
   4546 
   4547 --
   4548 -- Name: video_stream_session video_stream_session_assetId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4549 --
   4550 
   4551 ALTER TABLE ONLY public.video_stream_session
   4552     ADD CONSTRAINT "video_stream_session_assetId_fkey" FOREIGN KEY ("assetId") REFERENCES public.asset(id) ON DELETE CASCADE;
   4553 
   4554 
   4555 --
   4556 -- Name: video_stream_variant video_stream_variant_sessionId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4557 --
   4558 
   4559 ALTER TABLE ONLY public.video_stream_variant
   4560     ADD CONSTRAINT "video_stream_variant_sessionId_fkey" FOREIGN KEY ("sessionId") REFERENCES public.video_stream_session(id) ON DELETE CASCADE;
   4561 
   4562 
   4563 --
   4564 -- Name: workflow_log workflow_log_workflowId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4565 --
   4566 
   4567 ALTER TABLE ONLY public.workflow_log
   4568     ADD CONSTRAINT "workflow_log_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES public.workflow(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4569 
   4570 
   4571 --
   4572 -- Name: workflow_log workflow_log_workflowStepId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4573 --
   4574 
   4575 ALTER TABLE ONLY public.workflow_log
   4576     ADD CONSTRAINT "workflow_log_workflowStepId_fkey" FOREIGN KEY ("workflowStepId") REFERENCES public.workflow_step(id) ON UPDATE CASCADE ON DELETE SET NULL;
   4577 
   4578 
   4579 --
   4580 -- Name: workflow workflow_ownerId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4581 --
   4582 
   4583 ALTER TABLE ONLY public.workflow
   4584     ADD CONSTRAINT "workflow_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4585 
   4586 
   4587 --
   4588 -- Name: workflow_step workflow_step_pluginMethodId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4589 --
   4590 
   4591 ALTER TABLE ONLY public.workflow_step
   4592     ADD CONSTRAINT "workflow_step_pluginMethodId_fkey" FOREIGN KEY ("pluginMethodId") REFERENCES public.plugin_method(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4593 
   4594 
   4595 --
   4596 -- Name: workflow_step workflow_step_workflowId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
   4597 --
   4598 
   4599 ALTER TABLE ONLY public.workflow_step
   4600     ADD CONSTRAINT "workflow_step_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES public.workflow(id) ON UPDATE CASCADE ON DELETE CASCADE;
   4601 
   4602 
   4603 --
   4604 -- PostgreSQL database dump complete
   4605 --
   4606 
   4607 \unrestrict mjMyY2YEVBfWGabnjdRqEcQmimigWbvovifIDg4VxfkA30tCaxYDjnokejkP5XZ
   4608