Switch timestamp to timestamptz (#4696)

* Switch timestamps to timestamptz

* update standard/custom objects logic to use timestamptz

* fix test
This commit is contained in:
Weiko
2024-03-28 22:39:41 +01:00
committed by GitHub
parent 27fdb00d07
commit 1829f4d009
21 changed files with 209 additions and 79 deletions

View File

@ -0,0 +1,71 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class UseTimestampWithTZ1711633823798 implements MigrationInterface {
name = 'UseTimestampWithTZ1711633823798';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "core"."featureFlag" ALTER COLUMN "createdAt" TYPE TIMESTAMP WITH TIME ZONE USING "createdAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "core"."featureFlag" ALTER COLUMN "updatedAt" TYPE TIMESTAMP WITH TIME ZONE USING "updatedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "core"."billingSubscriptionItem" ALTER COLUMN "deletedAt" TYPE TIMESTAMP WITH TIME ZONE USING "deletedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "core"."billingSubscription" ALTER COLUMN "deletedAt" TYPE TIMESTAMP WITH TIME ZONE USING "deletedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "core"."workspace" ALTER COLUMN "deletedAt" TYPE TIMESTAMP WITH TIME ZONE USING "deletedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "core"."user" ALTER COLUMN "deletedAt" TYPE TIMESTAMP WITH TIME ZONE USING "deletedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "core"."user" ALTER COLUMN "passwordResetTokenExpiresAt" TYPE TIMESTAMP WITH TIME ZONE USING "passwordResetTokenExpiresAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "core"."userWorkspace" ALTER COLUMN "createdAt" TYPE TIMESTAMP WITH TIME ZONE USING "createdAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "core"."userWorkspace" ALTER COLUMN "updatedAt" TYPE TIMESTAMP WITH TIME ZONE USING "updatedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "core"."userWorkspace" ALTER COLUMN "deletedAt" TYPE TIMESTAMP WITH TIME ZONE USING "deletedAt" AT TIME ZONE 'UTC'`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "core"."featureFlag" ALTER COLUMN "createdAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "core"."featureFlag" ALTER COLUMN "updatedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "core"."billingSubscriptionItem" ALTER COLUMN "deletedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "core"."billingSubscription" ALTER COLUMN "deletedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "core"."workspace" ALTER COLUMN "deletedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "core"."user" ALTER COLUMN "deletedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "core"."user" ALTER COLUMN "passwordResetTokenExpiresAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "core"."userWorkspace" ALTER COLUMN "createdAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "core"."userWorkspace" ALTER COLUMN "updatedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "core"."userWorkspace" ALTER COLUMN "deletedAt" TYPE TIMESTAMP`,
);
}
}

View File

@ -0,0 +1,95 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class UseTimestampWithTZ1711619086385 implements MigrationInterface {
name = 'UseTimestampWithTZ1711619086385';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "metadata"."workspaceMigration" ALTER COLUMN "appliedAt" TYPE TIMESTAMP WITH TIME ZONE USING "appliedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."workspaceMigration" ALTER COLUMN "createdAt" TYPE TIMESTAMP WITH TIME ZONE USING "createdAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."workspaceCacheVersion" ALTER COLUMN "createdAt" TYPE TIMESTAMP WITH TIME ZONE USING "createdAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."workspaceCacheVersion" ALTER COLUMN "updatedAt" TYPE TIMESTAMP WITH TIME ZONE USING "updatedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."remoteServer" ALTER COLUMN "createdAt" TYPE TIMESTAMP WITH TIME ZONE USING "createdAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."remoteServer" ALTER COLUMN "updatedAt" TYPE TIMESTAMP WITH TIME ZONE USING "updatedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."dataSource" ALTER COLUMN "createdAt" TYPE TIMESTAMP WITH TIME ZONE USING "createdAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."dataSource" ALTER COLUMN "updatedAt" TYPE TIMESTAMP WITH TIME ZONE USING "updatedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."objectMetadata" ALTER COLUMN "createdAt" TYPE TIMESTAMP WITH TIME ZONE USING "createdAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."objectMetadata" ALTER COLUMN "updatedAt" TYPE TIMESTAMP WITH TIME ZONE USING "updatedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."fieldMetadata" ALTER COLUMN "createdAt" TYPE TIMESTAMP WITH TIME ZONE USING "createdAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."fieldMetadata" ALTER COLUMN "updatedAt" TYPE TIMESTAMP WITH TIME ZONE USING "updatedAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."relationMetadata" ALTER COLUMN "createdAt" TYPE TIMESTAMP WITH TIME ZONE USING "createdAt" AT TIME ZONE 'UTC'`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."relationMetadata" ALTER COLUMN "updatedAt" TYPE TIMESTAMP WITH TIME ZONE USING "updatedAt" AT TIME ZONE 'UTC'`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "metadata"."workspaceMigration" ALTER COLUMN "appliedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."workspaceMigration" ALTER COLUMN "createdAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."workspaceCacheVersion" ALTER COLUMN "createdAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."workspaceCacheVersion" ALTER COLUMN "updatedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."remoteServer" ALTER COLUMN "createdAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."remoteServer" ALTER COLUMN "updatedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."dataSource" ALTER COLUMN "createdAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."dataSource" ALTER COLUMN "updatedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."objectMetadata" ALTER COLUMN "createdAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."objectMetadata" ALTER COLUMN "updatedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."fieldMetadata" ALTER COLUMN "createdAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."fieldMetadata" ALTER COLUMN "updatedAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."relationMetadata" ALTER COLUMN "createdAt" TYPE TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."relationMetadata" ALTER COLUMN "updatedAt" TYPE TIMESTAMP`,
);
}
}