mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 16:28:12 +00:00
30 lines
1.2 KiB
TypeScript
30 lines
1.2 KiB
TypeScript
import { MigrationInterface, QueryRunner } from "typeorm";
|
|
|
|
/**
|
|
* Amounts now carry the real/major price (callers pass e.g. 10.50, not minor units), which may be
|
|
* fractional. Widen amount_minor / confirmed_amount_minor from integer to double precision so the
|
|
* decimals are stored instead of silently rounded.
|
|
*/
|
|
export class AmountToDouble1782000000000 implements MigrationInterface {
|
|
name = "AmountToDouble1782000000000";
|
|
|
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
// integer -> double precision is an implicit widening cast (no USING needed).
|
|
await queryRunner.query(
|
|
`ALTER TABLE "edr_payment"."payment_intent" ALTER COLUMN "amount_minor" TYPE double precision`,
|
|
);
|
|
await queryRunner.query(
|
|
`ALTER TABLE "edr_payment"."payment_intent" ALTER COLUMN "confirmed_amount_minor" TYPE double precision`,
|
|
);
|
|
}
|
|
|
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.query(
|
|
`ALTER TABLE "edr_payment"."payment_intent" ALTER COLUMN "confirmed_amount_minor" TYPE integer USING round("confirmed_amount_minor")`,
|
|
);
|
|
await queryRunner.query(
|
|
`ALTER TABLE "edr_payment"."payment_intent" ALTER COLUMN "amount_minor" TYPE integer USING round("amount_minor")`,
|
|
);
|
|
}
|
|
}
|