diff --git a/src/database/data-source.ts b/src/database/data-source.ts index 976205e..74346c8 100644 --- a/src/database/data-source.ts +++ b/src/database/data-source.ts @@ -35,6 +35,6 @@ export const AppDataSource = new DataSource({ CraftJob, Monster, ], - migrations: ['src/migrations/*.ts'], + migrations: [__dirname + '/migrations/*{.ts,.js}'], synchronize: false, }); diff --git a/src/database/migrations/1742169600000-Sprint3Economy.ts b/src/database/migrations/1742169600000-Sprint3Economy.ts new file mode 100644 index 0000000..93f341e --- /dev/null +++ b/src/database/migrations/1742169600000-Sprint3Economy.ts @@ -0,0 +1,44 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class Sprint3Economy1742169600000 implements MigrationInterface { + name = 'Sprint3Economy1742169600000'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE IF NOT EXISTS \`tetard_coins\` ( + \`id\` VARCHAR(36) NOT NULL, + \`user_id\` VARCHAR(255) NOT NULL, + \`balance\` INT NOT NULL DEFAULT 0, + \`updated_at\` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), + PRIMARY KEY (\`id\`), + UNIQUE INDEX \`IDX_tetard_coins_user_id\` (\`user_id\`) + ) ENGINE=InnoDB + `); + + await queryRunner.query(` + CREATE TABLE IF NOT EXISTS \`tc_transactions\` ( + \`id\` VARCHAR(36) NOT NULL, + \`user_id\` VARCHAR(255) NOT NULL, + \`amount\` INT NOT NULL, + \`reason\` VARCHAR(100) NOT NULL, + \`created_at\` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), + PRIMARY KEY (\`id\`), + INDEX \`IDX_tc_transactions_user_id\` (\`user_id\`) + ) ENGINE=InnoDB + `); + + await queryRunner.query(` + CREATE TABLE IF NOT EXISTS \`processed_events\` ( + \`id\` VARCHAR(255) NOT NULL, + \`processed_at\` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), + PRIMARY KEY (\`id\`) + ) ENGINE=InnoDB + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP TABLE IF EXISTS \`processed_events\``); + await queryRunner.query(`DROP TABLE IF EXISTS \`tc_transactions\``); + await queryRunner.query(`DROP TABLE IF EXISTS \`tetard_coins\``); + } +}