mirror of
https://github.com/docmost/docmost.git
synced 2025-11-13 19:22:38 +10:00
migrations
This commit is contained in:
@ -1,3 +1,3 @@
|
||||
# don't include frequently changing migrations yet
|
||||
*
|
||||
!.gitignore
|
||||
#*
|
||||
#!.gitignore
|
||||
|
||||
38
apps/server/src/database/migrations/1693002768219-init.ts
Normal file
38
apps/server/src/database/migrations/1693002768219-init.ts
Normal file
@ -0,0 +1,38 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class Init1693002768219 implements MigrationInterface {
|
||||
name = 'Init1693002768219'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TABLE "workspace_users" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "userId" uuid NOT NULL, "workspaceId" uuid NOT NULL, "role" character varying(100), "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "UQ_fe4f6e13489c4ad1a946910f529" UNIQUE ("workspaceId", "userId"), CONSTRAINT "PK_6d52a8e2739982d783279cffe84" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TABLE "pages" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "title" character varying(500), "content" text, "html" text, "json" jsonb, "slug" character varying, "icon" character varying, "coverPhoto" character varying, "editor" character varying(255), "shareId" character varying(255), "parentPageId" uuid, "creatorId" uuid NOT NULL, "workspaceId" uuid NOT NULL, "isLocked" boolean NOT NULL DEFAULT false, "status" character varying(255), "publishedAt" date, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP, CONSTRAINT "PK_8f21ed625aa34c8391d636b7d3b" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TABLE "workspace_invitations" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "workspaceId" uuid NOT NULL, "invitedById" uuid NOT NULL, "email" character varying(255) NOT NULL, "role" character varying(100), "status" character varying(100), "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_525b9069dc828a8ee8fdc62c32c" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TABLE "workspaces" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "name" character varying(255), "description" text, "logo" character varying(255), "hostname" character varying(255), "customDomain" character varying(255), "enableInvite" boolean NOT NULL DEFAULT true, "inviteCode" character varying(255), "settings" jsonb, "creatorId" uuid NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "UQ_3e610433bc1050e8b95ba5f40b3" UNIQUE ("hostname"), CONSTRAINT "UQ_a2c9d7a0bc273471872ecdbcfd9" UNIQUE ("inviteCode"), CONSTRAINT "PK_098656ae401f3e1a4586f47fd8e" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TABLE "users" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "name" character varying(255), "email" character varying(255) NOT NULL, "emailVerifiedAt" TIMESTAMP, "password" character varying NOT NULL, "avatarUrl" character varying, "locale" character varying(100), "timezone" character varying(300), "settings" jsonb, "lastLoginAt" TIMESTAMP, "lastLoginIp" character varying(100), "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "UQ_97672ac88f789774dd47f7c8be3" UNIQUE ("email"), CONSTRAINT "PK_a3ffb1c0c8416b9fc6f907b7433" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`ALTER TABLE "workspace_users" ADD CONSTRAINT "FK_70db33ab07e28bfa1fc6011d4ee" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "workspace_users" ADD CONSTRAINT "FK_9b226f3cec0ffab646d5607a0c5" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD CONSTRAINT "FK_a8c1826f1ff30a4a6afd3344ad5" FOREIGN KEY ("creatorId") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD CONSTRAINT "FK_2043118dc32860c1a4f02c94dcf" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD CONSTRAINT "FK_824728b97cb88f81f00dd333da1" FOREIGN KEY ("parentPageId") REFERENCES "pages"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "workspace_invitations" ADD CONSTRAINT "FK_65515eaafd8282c3848bddbb008" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "workspace_invitations" ADD CONSTRAINT "FK_5d5dd20ac2ce5f9b80d47ea4f09" FOREIGN KEY ("invitedById") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "workspaces" ADD CONSTRAINT "FK_2aab2dd12dc65eb183d99b953e0" FOREIGN KEY ("creatorId") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "workspaces" DROP CONSTRAINT "FK_2aab2dd12dc65eb183d99b953e0"`);
|
||||
await queryRunner.query(`ALTER TABLE "workspace_invitations" DROP CONSTRAINT "FK_5d5dd20ac2ce5f9b80d47ea4f09"`);
|
||||
await queryRunner.query(`ALTER TABLE "workspace_invitations" DROP CONSTRAINT "FK_65515eaafd8282c3848bddbb008"`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP CONSTRAINT "FK_824728b97cb88f81f00dd333da1"`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP CONSTRAINT "FK_2043118dc32860c1a4f02c94dcf"`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP CONSTRAINT "FK_a8c1826f1ff30a4a6afd3344ad5"`);
|
||||
await queryRunner.query(`ALTER TABLE "workspace_users" DROP CONSTRAINT "FK_9b226f3cec0ffab646d5607a0c5"`);
|
||||
await queryRunner.query(`ALTER TABLE "workspace_users" DROP CONSTRAINT "FK_70db33ab07e28bfa1fc6011d4ee"`);
|
||||
await queryRunner.query(`DROP TABLE "users"`);
|
||||
await queryRunner.query(`DROP TABLE "workspaces"`);
|
||||
await queryRunner.query(`DROP TABLE "workspace_invitations"`);
|
||||
await queryRunner.query(`DROP TABLE "pages"`);
|
||||
await queryRunner.query(`DROP TABLE "workspace_users"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class AddYdoc1694305155156 implements MigrationInterface {
|
||||
name = 'AddYdoc1694305155156'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" RENAME COLUMN "json" TO "ydoc"`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP COLUMN "ydoc"`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD "ydoc" bytea`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP COLUMN "ydoc"`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD "ydoc" jsonb`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" RENAME COLUMN "ydoc" TO "json"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class ChangeContentTypeToJson1694385231850 implements MigrationInterface {
|
||||
name = 'ChangeContentTypeToJson1694385231850'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP COLUMN "content"`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD "content" jsonb`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP COLUMN "content"`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD "content" text`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class PageChildren1696635925309 implements MigrationInterface {
|
||||
name = 'PageChildren1696635925309'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD "children" uuid array NOT NULL DEFAULT '{}'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP COLUMN "children"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class AddPageOrderToWorkspace1696699967408 implements MigrationInterface {
|
||||
name = 'AddPageOrderToWorkspace1696699967408'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "workspaces" ADD "pageOrder" uuid array NOT NULL DEFAULT '{}'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "workspaces" DROP COLUMN "pageOrder"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class PageOrdering1697150118968 implements MigrationInterface {
|
||||
name = 'PageOrdering1697150118968'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TABLE "page_ordering" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "entityId" uuid NOT NULL, "entityType" character varying(50) NOT NULL, "pageIds" uuid array, "workspaceId" uuid NOT NULL, CONSTRAINT "UQ_e6cab6ffd743697e73340ab10d5" UNIQUE ("entityId", "entityType"), CONSTRAINT "PK_9e76aa1ebbdb85f27813865a058" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ADD CONSTRAINT "FK_d08d863564fa1d5ed7a45d0e4ff" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" DROP CONSTRAINT "FK_d08d863564fa1d5ed7a45d0e4ff"`);
|
||||
await queryRunner.query(`DROP TABLE "page_ordering"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class AddDefaultToChildrenIds1697314563977 implements MigrationInterface {
|
||||
name = 'AddDefaultToChildrenIds1697314563977'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ADD "deletedAt" TIMESTAMP`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ADD "createdAt" TIMESTAMP NOT NULL DEFAULT now()`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ADD "updatedAt" TIMESTAMP NOT NULL DEFAULT now()`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ALTER COLUMN "childrenIds" SET NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ALTER COLUMN "childrenIds" SET DEFAULT ARRAY[]::uuid[]`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ALTER COLUMN "childrenIds" DROP DEFAULT`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ALTER COLUMN "childrenIds" DROP NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" DROP COLUMN "updatedAt"`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" DROP COLUMN "createdAt"`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" DROP COLUMN "deletedAt"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class FixPageOrdering1697314976326 implements MigrationInterface {
|
||||
name = 'FixPageOrdering1697314976326'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ALTER COLUMN "childrenIds" SET DEFAULT ARRAY[]::uuid[]`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ALTER COLUMN "childrenIds" SET DEFAULT ARRAY[]::uuid[]`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class FixPageOrderingNext1697316172733 implements MigrationInterface {
|
||||
name = 'FixPageOrderingNext1697316172733'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP COLUMN "children"`);
|
||||
await queryRunner.query(`ALTER TABLE "workspaces" DROP COLUMN "pageOrder"`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "workspaces" ADD "pageOrder" uuid array NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD "children" uuid array NOT NULL DEFAULT '{}'`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class Comments1698947225315 implements MigrationInterface {
|
||||
name = 'Comments1698947225315'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TABLE "comments" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "content" text NOT NULL, "selection" character varying(255), "type" character varying(55), "creatorId" uuid NOT NULL, "pageId" uuid NOT NULL, "parentCommentId" uuid, "resolvedById" uuid, "resolvedAt" TIMESTAMP, "workspaceId" uuid NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "editedAt" TIMESTAMP, "deletedAt" TIMESTAMP, CONSTRAINT "PK_8bf68bc960f2b69e818bdb90dcb" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ALTER COLUMN "childrenIds" SET DEFAULT ARRAY[]::uuid[]`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" ADD CONSTRAINT "FK_0b42c764851bcb3ffae634792bc" FOREIGN KEY ("creatorId") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" ADD CONSTRAINT "FK_824db5aaea3cd415ff5c4074f03" FOREIGN KEY ("pageId") REFERENCES "pages"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" ADD CONSTRAINT "FK_4875672591221a61ace66f2d4f9" FOREIGN KEY ("parentCommentId") REFERENCES "comments"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" ADD CONSTRAINT "FK_79d04b0fd3e4be189fd14d5ff87" FOREIGN KEY ("resolvedById") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" ADD CONSTRAINT "FK_9e54f4464009dbc27921fd5f166" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "comments" DROP CONSTRAINT "FK_9e54f4464009dbc27921fd5f166"`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" DROP CONSTRAINT "FK_79d04b0fd3e4be189fd14d5ff87"`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" DROP CONSTRAINT "FK_4875672591221a61ace66f2d4f9"`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" DROP CONSTRAINT "FK_824db5aaea3cd415ff5c4074f03"`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" DROP CONSTRAINT "FK_0b42c764851bcb3ffae634792bc"`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ALTER COLUMN "childrenIds" SET DEFAULT ARRAY[]::uuid[]`);
|
||||
await queryRunner.query(`DROP TABLE "comments"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class ChangeCommentsContentType1699136384454 implements MigrationInterface {
|
||||
name = 'ChangeCommentsContentType1699136384454'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "comments" DROP COLUMN "content"`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" ADD "content" jsonb`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "comments" DROP COLUMN "content"`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" ADD "content" text NOT NULL`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class CascadeChildrenComments1699459398217 implements MigrationInterface {
|
||||
name = 'CascadeChildrenComments1699459398217'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "comments" DROP CONSTRAINT "FK_4875672591221a61ace66f2d4f9"`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" ADD CONSTRAINT "FK_4875672591221a61ace66f2d4f9" FOREIGN KEY ("parentCommentId") REFERENCES "comments"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "comments" DROP CONSTRAINT "FK_4875672591221a61ace66f2d4f9"`);
|
||||
await queryRunner.query(`ALTER TABLE "comments" ADD CONSTRAINT "FK_4875672591221a61ace66f2d4f9" FOREIGN KEY ("parentCommentId") REFERENCES "comments"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class AddLastUpdatedByIdToPage1699745066813 implements MigrationInterface {
|
||||
name = 'AddLastUpdatedByIdToPage1699745066813'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD "lastUpdatedById" uuid`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ALTER COLUMN "childrenIds" DROP DEFAULT`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD CONSTRAINT "FK_084265d943e0013761a6d6478e0" FOREIGN KEY ("lastUpdatedById") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP CONSTRAINT "FK_084265d943e0013761a6d6478e0"`);
|
||||
await queryRunner.query(`ALTER TABLE "page_ordering" ALTER COLUMN "childrenIds" SET DEFAULT ARRAY[]`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP COLUMN "lastUpdatedById"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class AddDeletedByIdToPage1699746184234 implements MigrationInterface {
|
||||
name = 'AddDeletedByIdToPage1699746184234'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD "deletedById" uuid`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD CONSTRAINT "FK_189f605351a31458e0e30c8a9cb" FOREIGN KEY ("deletedById") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP CONSTRAINT "FK_189f605351a31458e0e30c8a9cb"`);
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP COLUMN "deletedById"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class PageHistory1699994428641 implements MigrationInterface {
|
||||
name = 'PageHistory1699994428641'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TABLE "page_history" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "pageId" uuid NOT NULL, "title" character varying(500), "content" jsonb, "slug" character varying, "icon" character varying, "coverPhoto" character varying, "version" integer NOT NULL, "lastUpdatedById" uuid NOT NULL, "workspaceId" uuid NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_691fc6c1929979d997d632fce15" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`ALTER TABLE "page_history" ADD CONSTRAINT "FK_aa0d880237a50235094b861fa10" FOREIGN KEY ("pageId") REFERENCES "pages"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "page_history" ADD CONSTRAINT "FK_7be5dfbbbb81607688a5032516d" FOREIGN KEY ("lastUpdatedById") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "page_history" ADD CONSTRAINT "FK_9cc322c0c40d5d3356911e24ce0" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page_history" DROP CONSTRAINT "FK_9cc322c0c40d5d3356911e24ce0"`);
|
||||
await queryRunner.query(`ALTER TABLE "page_history" DROP CONSTRAINT "FK_7be5dfbbbb81607688a5032516d"`);
|
||||
await queryRunner.query(`ALTER TABLE "page_history" DROP CONSTRAINT "FK_aa0d880237a50235094b861fa10"`);
|
||||
await queryRunner.query(`DROP TABLE "page_history"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class Attachments1700915691852 implements MigrationInterface {
|
||||
name = 'Attachments1700915691852'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TABLE "attachments" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "fileName" character varying(255) NOT NULL, "filePath" character varying NOT NULL, "fileSize" bigint NOT NULL, "fileExt" character varying(55) NOT NULL, "mimeType" character varying(255) NOT NULL, "type" character varying(55) NOT NULL, "creatorId" uuid NOT NULL, "pageId" uuid, "workspaceId" uuid NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP, CONSTRAINT "PK_5e1f050bcff31e3084a1d662412" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`ALTER TABLE "attachments" ADD CONSTRAINT "FK_daa9e88b284de90deec949dd18a" FOREIGN KEY ("creatorId") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "attachments" ADD CONSTRAINT "FK_60c2231004f3ca0e1808960eaf4" FOREIGN KEY ("pageId") REFERENCES "pages"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "attachments" ADD CONSTRAINT "FK_324ff4215dd2fdad52a8d5e2dfd" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "attachments" DROP CONSTRAINT "FK_324ff4215dd2fdad52a8d5e2dfd"`);
|
||||
await queryRunner.query(`ALTER TABLE "attachments" DROP CONSTRAINT "FK_60c2231004f3ca0e1808960eaf4"`);
|
||||
await queryRunner.query(`ALTER TABLE "attachments" DROP CONSTRAINT "FK_daa9e88b284de90deec949dd18a"`);
|
||||
await queryRunner.query(`DROP TABLE "attachments"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class AllowNullableWorkspaceIdInAttachment1701130054626 implements MigrationInterface {
|
||||
name = 'AllowNullableWorkspaceIdInAttachment1701130054626'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "attachments" DROP CONSTRAINT "FK_324ff4215dd2fdad52a8d5e2dfd"`);
|
||||
await queryRunner.query(`ALTER TABLE "attachments" ALTER COLUMN "workspaceId" DROP NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "attachments" ADD CONSTRAINT "FK_324ff4215dd2fdad52a8d5e2dfd" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "attachments" DROP CONSTRAINT "FK_324ff4215dd2fdad52a8d5e2dfd"`);
|
||||
await queryRunner.query(`ALTER TABLE "attachments" ALTER COLUMN "workspaceId" SET NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "attachments" ADD CONSTRAINT "FK_324ff4215dd2fdad52a8d5e2dfd" FOREIGN KEY ("workspaceId") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class AddTextContentColumn1706304317371 implements MigrationInterface {
|
||||
name = 'AddTextContentColumn1706304317371'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD "textContent" text`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP COLUMN "textContent"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class AddTsvectorColumn1706450034470 implements MigrationInterface {
|
||||
name = 'AddTsvectorColumn1706450034470'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "pages" ADD "tsv" tsvector GENERATED ALWAYS AS (setweight(to_tsvector('english', coalesce(pages.title, '')), 'A') || setweight(to_tsvector('english', coalesce(pages."textContent", '')), 'B')) STORED`);
|
||||
await queryRunner.query(`INSERT INTO "typeorm_metadata"("database", "schema", "table", "type", "name", "value") VALUES ($1, $2, $3, $4, $5, $6)`, ["","public","pages","GENERATED_COLUMN","tsv","setweight(to_tsvector('english', coalesce(pages.title, '')), 'A') || setweight(to_tsvector('english', coalesce(pages.\"textContent\", '')), 'B')"]);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DELETE FROM "typeorm_metadata" WHERE "type" = $1 AND "name" = $2 AND "database" = $3 AND "schema" = $4 AND "table" = $5`, ["GENERATED_COLUMN","tsv","","public","pages"]);
|
||||
await queryRunner.query(`ALTER TABLE "pages" DROP COLUMN "tsv"`);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class AddIndexTSVColumn1706453158729 implements MigrationInterface {
|
||||
name = 'AddIndexTSVColumn1706453158729'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE INDEX pages_tsv_index ON pages USING GIN ("tsv");`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS pages_tsv_index;`);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user