1
|
|
|
import {MigrationInterface, QueryRunner} from "typeorm"; |
2
|
|
|
|
3
|
|
|
export class InitModel1575020116603 implements MigrationInterface { |
4
|
|
|
name = 'InitModel1575020116603' |
5
|
|
|
|
6
|
|
|
public async up(queryRunner: QueryRunner): Promise<any> { |
7
|
|
|
await queryRunner.query(`CREATE EXTENSION IF NOT EXISTS "uuid-ossp";`, undefined); |
8
|
|
|
await queryRunner.query(`CREATE TABLE "customer" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "name" character varying NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "PK_a7a13f4cacb744524e44dfdad32" PRIMARY KEY ("id"))`, undefined); |
9
|
|
|
await queryRunner.query(`CREATE TABLE "project" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "name" character varying NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, "customerId" uuid NOT NULL, CONSTRAINT "PK_4d68b1358bb5b766d3e78f32f57" PRIMARY KEY ("id"))`, undefined); |
10
|
|
|
await queryRunner.query(`CREATE TYPE "user_role_enum" AS ENUM('cooperator', 'accountant', 'employee')`, undefined); |
11
|
|
|
await queryRunner.query(`CREATE TABLE "user" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "firstName" character varying NOT NULL, "lastName" character varying NOT NULL, "email" character varying NOT NULL, "apiToken" character varying, "password" character varying NOT NULL, "role" "user_role_enum" NOT NULL, "entryDate" TIMESTAMP,"createdAt" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "UQ_e12875dfb3b1d92d7d7c5377e22" UNIQUE ("email"), CONSTRAINT "PK_cace4a159ff9f2512dd42373760" PRIMARY KEY ("id"))`, undefined); |
12
|
|
|
await queryRunner.query(`CREATE INDEX "api-token" ON "user" ("apiToken") `, undefined); |
13
|
|
|
await queryRunner.query(`CREATE TABLE "task" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "name" character varying NOT NULL, CONSTRAINT "PK_fb213f79ee45060ba925ecd576e" PRIMARY KEY ("id"))`, undefined); |
14
|
|
|
await queryRunner.query(`ALTER TABLE "project" ADD CONSTRAINT "FK_b76640329fa79f0b0e9d031c35b" FOREIGN KEY ("customerId") REFERENCES "customer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, undefined); |
15
|
|
|
await queryRunner.query(`INSERT INTO "user" VALUES('c5dc7188-cdf7-4439-a936-4379a79635de', 'John', 'Doe', '[email protected]', '$argon2i$v=19$m=4096,t=3,p=1$u7Jw1anFWyHcpfeOxjGYuQ$Ic4YheZZK9aF81q7CW8geSiG6Bsy+f52EnKTyzBlEXE', '$argon2i$v=19$m=4096,t=3,p=1$slHh/xhoh8SvIjApBHSZnA$hqsry11DeWbNYsFnzADPkYOP2WQrf0yqDXGC3xjSX9A', 'cooperator', '2020-04-04')`, undefined); |
16
|
|
|
} |
17
|
|
|
|
18
|
|
|
public async down(queryRunner: QueryRunner): Promise<any> { |
19
|
|
|
await queryRunner.query(`ALTER TABLE "project" DROP CONSTRAINT "FK_b76640329fa79f0b0e9d031c35b"`, undefined); |
20
|
|
|
await queryRunner.query(`DROP TABLE "task"`, undefined); |
21
|
|
|
await queryRunner.query(`DROP INDEX "api-token"`, undefined); |
22
|
|
|
await queryRunner.query(`DROP TABLE "user"`, undefined); |
23
|
|
|
await queryRunner.query(`DROP TABLE "project"`, undefined); |
24
|
|
|
await queryRunner.query(`DROP TABLE "customer"`, undefined); |
25
|
|
|
} |
26
|
|
|
|
27
|
|
|
} |
28
|
|
|
|