Create initial DB migration script
This commit is contained in:
parent
242e535f93
commit
6ad9fcc098
19 changed files with 114 additions and 39 deletions
11
database/3.1/1662399171315-CreateBase/Up/01-table/Audit.sql
Normal file
11
database/3.1/1662399171315-CreateBase/Up/01-table/Audit.sql
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
CREATE TABLE `audit` (
|
||||||
|
`Id` varchar(255) NOT NULL,
|
||||||
|
`WhenCreated` datetime NOT NULL,
|
||||||
|
`WhenUpdated` datetime NOT NULL,
|
||||||
|
`AuditId` varchar(255) NOT NULL,
|
||||||
|
`UserId` varchar(255) NOT NULL,
|
||||||
|
`AuditType` int NOT NULL,
|
||||||
|
`Reason` varchar(255) NOT NULL,
|
||||||
|
`ModeratorId` varchar(255) NOT NULL,
|
||||||
|
`ServerId` varchar(255) NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
@ -0,0 +1,5 @@
|
||||||
|
CREATE TABLE `ignored_channel` (
|
||||||
|
`Id` varchar(255) NOT NULL,
|
||||||
|
`WhenCreated` datetime NOT NULL,
|
||||||
|
`WhenUpdated` datetime NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
10
database/3.1/1662399171315-CreateBase/Up/01-table/Lobby.sql
Normal file
10
database/3.1/1662399171315-CreateBase/Up/01-table/Lobby.sql
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
CREATE TABLE `lobby` (
|
||||||
|
`Id` varchar(255) NOT NULL,
|
||||||
|
`WhenCreated` datetime NOT NULL,
|
||||||
|
`WhenUpdated` datetime NOT NULL,
|
||||||
|
`ChannelId` varchar(255) NOT NULL,
|
||||||
|
`RoleId` varchar(255) NOT NULL,
|
||||||
|
`Cooldown` int NOT NULL,
|
||||||
|
`LastUsed` datetime NOT NULL,
|
||||||
|
`Name` varchar(255) NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
@ -0,0 +1,7 @@
|
||||||
|
CREATE TABLE `role` (
|
||||||
|
`Id` varchar(255) NOT NULL,
|
||||||
|
`WhenCreated` datetime NOT NULL,
|
||||||
|
`WhenUpdated` datetime NOT NULL,
|
||||||
|
`RoleId` varchar(255) NOT NULL,
|
||||||
|
`serverId` varchar(255) DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
@ -0,0 +1,5 @@
|
||||||
|
CREATE TABLE `server` (
|
||||||
|
`Id` varchar(255) NOT NULL,
|
||||||
|
`WhenCreated` datetime NOT NULL,
|
||||||
|
`WhenUpdated` datetime NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
@ -0,0 +1,8 @@
|
||||||
|
CREATE TABLE `setting` (
|
||||||
|
`Id` varchar(255) NOT NULL,
|
||||||
|
`WhenCreated` datetime NOT NULL,
|
||||||
|
`WhenUpdated` datetime NOT NULL,
|
||||||
|
`Key` varchar(255) NOT NULL,
|
||||||
|
`Value` varchar(255) NOT NULL,
|
||||||
|
`serverId` varchar(255) DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE `audit`
|
||||||
|
ADD PRIMARY KEY (`Id`);
|
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE `ignored_channel`
|
||||||
|
ADD PRIMARY KEY (`Id`);
|
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE `lobby`
|
||||||
|
ADD PRIMARY KEY (`Id`);
|
3
database/3.1/1662399171315-CreateBase/Up/02-key/Role.sql
Normal file
3
database/3.1/1662399171315-CreateBase/Up/02-key/Role.sql
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
ALTER TABLE `role`
|
||||||
|
ADD PRIMARY KEY (`Id`),
|
||||||
|
ADD KEY `FK_d9e438d88cfb64f7f8e1ae593c3` (`serverId`);
|
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE `server`
|
||||||
|
ADD PRIMARY KEY (`Id`);
|
|
@ -0,0 +1,3 @@
|
||||||
|
ALTER TABLE `setting`
|
||||||
|
ADD PRIMARY KEY (`Id`),
|
||||||
|
ADD KEY `FK_a3623ec541bdb12fa0f58bdfde7` (`serverId`);
|
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE `role`
|
||||||
|
ADD CONSTRAINT `FK_d9e438d88cfb64f7f8e1ae593c3` FOREIGN KEY (`serverId`) REFERENCES `server` (`Id`);
|
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE `setting`
|
||||||
|
ADD CONSTRAINT `FK_a3623ec541bdb12fa0f58bdfde7` FOREIGN KEY (`serverId`) REFERENCES `server` (`Id`);
|
20
src/helpers/MigrationHelper.ts
Normal file
20
src/helpers/MigrationHelper.ts
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
import { readFileSync } from "fs";
|
||||||
|
import { QueryRunner } from "typeorm";
|
||||||
|
|
||||||
|
export default class MigrationHelper {
|
||||||
|
public static Up(migrationName: string, version: string, queryFiles: string[], queryRunner: QueryRunner) {
|
||||||
|
for (let path of queryFiles) {
|
||||||
|
const query = readFileSync(`${process.cwd()}/database/${version}/${migrationName}/Up/${path}.sql`).toString();
|
||||||
|
|
||||||
|
queryRunner.query(query);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Down(migrationName: string, version: string, queryFiles: string[], queryRunner: QueryRunner) {
|
||||||
|
for (let path of queryFiles) {
|
||||||
|
const query = readFileSync(`${process.cwd()}/database/${version}/${migrationName}/Down/${path}.sql`).toString();
|
||||||
|
|
||||||
|
queryRunner.query(query);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,13 +0,0 @@
|
||||||
import { MigrationInterface, QueryRunner } from "typeorm"
|
|
||||||
|
|
||||||
export class migration1652375907691 implements MigrationInterface {
|
|
||||||
|
|
||||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
||||||
queryRunner.query(`CREATE TABLE role (Id varchar(255), WhenCreated datetime, WhenUpdated datetime, RoleId varchar(255), serverId varchar(255), PRIMARY KEY (Id), FOREIGN KEY (serverId) REFERENCES server(Id))`);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
||||||
queryRunner.query(`DROP TABLE role`);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
import { MigrationInterface, QueryRunner } from "typeorm"
|
|
||||||
|
|
||||||
export class migration1657647026816 implements MigrationInterface {
|
|
||||||
|
|
||||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
||||||
queryRunner.query(`CREATE TABLE ignored_channel (Id varchar(255), PRIMARY KEY (Id))`);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
||||||
queryRunner.query(`DROP TABLE ignored_channel`)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
import { MigrationInterface, QueryRunner } from "typeorm"
|
|
||||||
|
|
||||||
export class CreateAudit1660754832945 implements MigrationInterface {
|
|
||||||
|
|
||||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
||||||
queryRunner.query(`CREATE TABLE audit (Id varchar(255), WhenCreated datetime, WhenUpdated datetime, auditId varchar(255), userId varchar(255), auditType int, reason varchar(255), moderatorId varchar(255), serverId varchar(255), PRIMARY KEY (Id))`);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
||||||
queryRunner.query(`DROP TABLE audit`);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
30
src/migration/3.1/1662399171315-CreateBase.ts
Normal file
30
src/migration/3.1/1662399171315-CreateBase.ts
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
import { MigrationInterface, QueryRunner } from "typeorm"
|
||||||
|
import MigrationHelper from "../../helpers/MigrationHelper"
|
||||||
|
|
||||||
|
export class vylbot1662399171315 implements MigrationInterface {
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
MigrationHelper.Up('1662399171315-CreateBase', '3.1', [
|
||||||
|
"01-table/Audit",
|
||||||
|
"01-table/IgnoredChannel",
|
||||||
|
"01-table/Lobby",
|
||||||
|
"01-table/Role",
|
||||||
|
"01-table/Server",
|
||||||
|
"01-table/Setting",
|
||||||
|
|
||||||
|
"02-key/Audit",
|
||||||
|
"02-key/IgnoredChannel",
|
||||||
|
"02-key/Lobby",
|
||||||
|
"02-key/Role",
|
||||||
|
"02-key/Server",
|
||||||
|
"02-key/Setting",
|
||||||
|
|
||||||
|
"03-constraint/Role",
|
||||||
|
"03-constraint/Setting",
|
||||||
|
], queryRunner);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue