Use EntitySchemas in comments-server, Fix duplicate migrations

This commit is contained in:
Jerko Steiner 2019-09-23 11:21:06 +07:00
parent 960fc96d28
commit 42bda32985
4 changed files with 45 additions and 6 deletions

View File

@ -5,20 +5,23 @@ const transformer = {
to: (value: undefined | null | string) => value ? new Date(value) : value,
}
export const BaseEntitySchemaPart: Record<
'id' | 'createDate' | 'updateDate', EntitySchemaColumnOptions> = {
export const BaseEntitySchemaPart: {
id: EntitySchemaColumnOptions
createDate: EntitySchemaColumnOptions
updateDate: EntitySchemaColumnOptions
} = {
id: {
type: 'integer',
type: Number,
primary: true,
generated: true,
},
createDate: {
type: 'datetime',
type: Date,
createDate: true,
transformer,
},
updateDate: {
type: 'datetime',
type: Date,
updateDate: true,
transformer,
},

View File

@ -9,7 +9,7 @@ export const SessionEntity = new EntitySchema<Session>({
primary: true,
},
expiredAt: {
type: Number,
type: 'bigint',
// default: () => Date.now(),
},
userId: {

View File

@ -0,0 +1,35 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class sessionExpiredAtBigint1569211662484 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<any> {
await queryRunner.query(`DROP INDEX "IDX_28c5d1d16da7908c97c9bc2f74"`, undefined);
await queryRunner.query(`CREATE TABLE "temporary_session" ("id" varchar PRIMARY KEY NOT NULL, "expiredAt" integer NOT NULL, "userId" integer, "json" text NOT NULL, CONSTRAINT "FK_3d2f174ef04fb312fdebd0ddc53" FOREIGN KEY ("userId") REFERENCES "user" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION)`, undefined);
await queryRunner.query(`INSERT INTO "temporary_session"("id", "expiredAt", "userId", "json") SELECT "id", "expiredAt", "userId", "json" FROM "session"`, undefined);
await queryRunner.query(`DROP TABLE "session"`, undefined);
await queryRunner.query(`ALTER TABLE "temporary_session" RENAME TO "session"`, undefined);
await queryRunner.query(`CREATE INDEX "IDX_28c5d1d16da7908c97c9bc2f74" ON "session" ("expiredAt") `, undefined);
await queryRunner.query(`DROP INDEX "IDX_28c5d1d16da7908c97c9bc2f74"`, undefined);
await queryRunner.query(`CREATE TABLE "temporary_session" ("id" varchar PRIMARY KEY NOT NULL, "expiredAt" bigint NOT NULL, "userId" integer, "json" text NOT NULL, CONSTRAINT "FK_3d2f174ef04fb312fdebd0ddc53" FOREIGN KEY ("userId") REFERENCES "user" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION)`, undefined);
await queryRunner.query(`INSERT INTO "temporary_session"("id", "expiredAt", "userId", "json") SELECT "id", "expiredAt", "userId", "json" FROM "session"`, undefined);
await queryRunner.query(`DROP TABLE "session"`, undefined);
await queryRunner.query(`ALTER TABLE "temporary_session" RENAME TO "session"`, undefined);
await queryRunner.query(`CREATE INDEX "IDX_28c5d1d16da7908c97c9bc2f74" ON "session" ("expiredAt") `, undefined);
}
public async down(queryRunner: QueryRunner): Promise<any> {
await queryRunner.query(`DROP INDEX "IDX_28c5d1d16da7908c97c9bc2f74"`, undefined);
await queryRunner.query(`ALTER TABLE "session" RENAME TO "temporary_session"`, undefined);
await queryRunner.query(`CREATE TABLE "session" ("id" varchar PRIMARY KEY NOT NULL, "expiredAt" integer NOT NULL, "userId" integer, "json" text NOT NULL, CONSTRAINT "FK_3d2f174ef04fb312fdebd0ddc53" FOREIGN KEY ("userId") REFERENCES "user" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION)`, undefined);
await queryRunner.query(`INSERT INTO "session"("id", "expiredAt", "userId", "json") SELECT "id", "expiredAt", "userId", "json" FROM "temporary_session"`, undefined);
await queryRunner.query(`DROP TABLE "temporary_session"`, undefined);
await queryRunner.query(`CREATE INDEX "IDX_28c5d1d16da7908c97c9bc2f74" ON "session" ("expiredAt") `, undefined);
await queryRunner.query(`DROP INDEX "IDX_28c5d1d16da7908c97c9bc2f74"`, undefined);
await queryRunner.query(`ALTER TABLE "session" RENAME TO "temporary_session"`, undefined);
await queryRunner.query(`CREATE TABLE "session" ("id" varchar PRIMARY KEY NOT NULL, "expiredAt" integer NOT NULL, "userId" integer, "json" text NOT NULL, CONSTRAINT "FK_3d2f174ef04fb312fdebd0ddc53" FOREIGN KEY ("userId") REFERENCES "user" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION)`, undefined);
await queryRunner.query(`INSERT INTO "session"("id", "expiredAt", "userId", "json") SELECT "id", "expiredAt", "userId", "json" FROM "temporary_session"`, undefined);
await queryRunner.query(`DROP TABLE "temporary_session"`, undefined);
await queryRunner.query(`CREATE INDEX "IDX_28c5d1d16da7908c97c9bc2f74" ON "session" ("expiredAt") `, undefined);
}
}

View File

@ -9,3 +9,4 @@ export * from './1548412884820-role-unique'
export * from './1552227347990-comment-parentid-nullable'
export * from './1552227652042-nullable'
export * from './1552899385211-user-first-last-name'
export * from './1569211662484-session_expiredAt_bigint'