Skip to content

Commit bfe4722

Browse files
committed
update table with ForeignKeyConstraint
1 parent eec2ac9 commit bfe4722

File tree

2 files changed

+13
-15
lines changed

2 files changed

+13
-15
lines changed

server/src/schema/migrations/1749235207144-AddActivityAssetFk.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,11 @@ export async function up(db: Kysely<any>): Promise<void> {
99
WHERE a."albumId" = aaa."albumsId"
1010
AND a."assetId" = aaa."assetsId"
1111
);`.execute(db);
12-
await sql`ALTER TABLE activity
13-
ADD CONSTRAINT fk_activity_album_asset_composite
14-
FOREIGN KEY ("albumId", "assetId")
15-
REFERENCES public.albums_assets_assets ("albumsId", "assetsId")
16-
ON UPDATE NO ACTION
17-
ON DELETE CASCADE;`.execute(db);
12+
await sql`ALTER TABLE "activity" ADD CONSTRAINT "fk_activity_album_asset_composite" FOREIGN KEY ("albumId", "assetId") REFERENCES "albums_assets_assets" ("albumsId", "assetsId") ON UPDATE NO ACTION ON DELETE CASCADE;`.execute(db);
13+
await sql`CREATE INDEX "IDX_86102d85cfa7f196073aebff68" ON "activity" ("albumId", "assetId")`.execute(db);
1814
}
1915

2016
export async function down(db: Kysely<any>): Promise<void> {
21-
await sql`ALTER TABLE activity
22-
DROP CONSTRAINT fk_activity_album_asset_composite;`.execute(db);
17+
await sql`DROP INDEX "IDX_86102d85cfa7f196073aebff68";`.execute(db);
18+
await sql`ALTER TABLE "activity" DROP CONSTRAINT "fk_activity_album_asset_composite";`.execute(db);
2319
}

server/src/schema/tables/activity.table.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
Column,
99
CreateDateColumn,
1010
ForeignKeyColumn,
11+
ForeignKeyConstraint,
1112
Index,
1213
PrimaryGeneratedColumn,
1314
Table,
@@ -26,6 +27,14 @@ import {
2627
name: 'CHK_2ab1e70f113f450eb40c1e3ec8',
2728
expression: `("comment" IS NULL AND "isLiked" = true) OR ("comment" IS NOT NULL AND "isLiked" = false)`,
2829
})
30+
@ForeignKeyConstraint({
31+
name: 'fk_activity_album_asset_composite',
32+
columns: ['albumId', 'assetId'],
33+
referenceTable: () => AlbumAssetTable,
34+
referenceColumns: ['albumsId', 'assetsId'],
35+
onUpdate: 'NO ACTION',
36+
onDelete: 'CASCADE',
37+
})
2938
export class ActivityTable {
3039
@PrimaryGeneratedColumn()
3140
id!: string;
@@ -45,13 +54,6 @@ export class ActivityTable {
4554
@ForeignKeyColumn(() => AssetTable, { onDelete: 'CASCADE', onUpdate: 'CASCADE', nullable: true })
4655
assetId!: string | null;
4756

48-
@ForeignKeyColumn(() => AlbumAssetTable, {
49-
onDelete: 'CASCADE',
50-
nullable: true,
51-
constraintName: 'fk_activity_album_asset_composite',
52-
})
53-
albumAsset!: AlbumAssetTable;
54-
5557
@Column({ type: 'text', default: null })
5658
comment!: string | null;
5759

0 commit comments

Comments
 (0)