Skip to content

Commit b144c4b

Browse files
authored
Merge pull request #1 from Code-4-Community/HP-adding-migrations
Hp adding migrations - test
2 parents 901f7f5 + 749cdab commit b144c4b

File tree

5 files changed

+99
-28
lines changed

5 files changed

+99
-28
lines changed

apps/backend/src/app.module.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@ import { TypeOrmModule } from '@nestjs/typeorm';
33

44
import { AppController } from './app.controller';
55
import { AppService } from './app.service';
6-
import { TaskModule } from './task/task.module';
76
import AppDataSource from './data-source';
87

98
@Module({
10-
imports: [TypeOrmModule.forRoot(AppDataSource.options), TaskModule],
9+
imports: [TypeOrmModule.forRoot(AppDataSource.options)],
1110
controllers: [AppController],
1211
providers: [AppService],
1312
})

apps/backend/src/data-source.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { DataSource } from 'typeorm';
22
import { PluralNamingStrategy } from './strategies/plural-naming.strategy';
3-
import { Task } from './task/types/task.entity';
43
import * as dotenv from 'dotenv';
54

65
dotenv.config();
@@ -12,7 +11,7 @@ const AppDataSource = new DataSource({
1211
username: process.env.NX_DB_USERNAME,
1312
password: process.env.NX_DB_PASSWORD,
1413
database: process.env.NX_DB_DATABASE,
15-
entities: [Task],
14+
entities: [],
1615
migrations: ['apps/backend/src/migrations/*.js'],
1716
// Setting synchronize: true shouldn't be used in production - otherwise you can lose production data
1817
synchronize: false,

apps/backend/src/migrations/1754254886189-add_task.ts

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import { MigrationInterface, QueryRunner } from 'typeorm';
2+
3+
export class Init1754254886189 implements MigrationInterface {
4+
name = 'Init1754254886189';
5+
6+
public async up(queryRunner: QueryRunner): Promise<void> {
7+
await queryRunner.query(
8+
`CREATE TYPE "public"."commit_length_enum" AS ENUM('Semester', 'Month', 'Year')`,
9+
);
10+
11+
await queryRunner.query(
12+
`CREATE TYPE "public"."site_enum" AS ENUM('Downtown Campus', 'North Campus', 'West Campus', 'East Campus')`,
13+
);
14+
15+
await queryRunner.query(
16+
`CREATE TYPE "public"."app_status_enum" AS ENUM('App submitted', 'in review', 'forms sent', 'accepted', 'rejected')`,
17+
);
18+
19+
await queryRunner.query(
20+
`CREATE TYPE "public"."school_enum" AS ENUM('Harvard Medical School', 'Johns Hopkins', 'Stanford Medicine', 'Mayo Clinic', 'Other')`,
21+
);
22+
23+
await queryRunner.query(
24+
`CREATE TYPE "public"."experience_type_enum" AS ENUM('BS', 'MS', 'PhD', 'MD', 'MD PhD', 'RN', 'NP', 'PA', 'Other')`,
25+
);
26+
27+
await queryRunner.query(
28+
`CREATE TYPE "public"."interest_area_enum" AS ENUM('Nursing', 'HarmReduction', 'WomensHealth')`,
29+
);
30+
31+
await queryRunner.query(
32+
`CREATE TABLE "admin" (
33+
"id" SERIAL NOT NULL,
34+
"name" character varying NOT NULL,
35+
"email" character varying NOT NULL UNIQUE,
36+
CONSTRAINT "PK_admin_id" PRIMARY KEY ("id")
37+
)`,
38+
);
39+
40+
await queryRunner.query(
41+
`CREATE TABLE "discipline" (
42+
"id" SERIAL NOT NULL,
43+
"name" character varying NOT NULL,
44+
"admin_ids" integer[] NOT NULL DEFAULT '{}',
45+
CONSTRAINT "PK_discipline_id" PRIMARY KEY ("id")
46+
)`,
47+
);
48+
49+
await queryRunner.query(
50+
`CREATE TABLE "application" (
51+
"appId" SERIAL NOT NULL,
52+
"phone" character varying NOT NULL,
53+
"school" "public"."school_enum" NOT NULL,
54+
"daysAvailable" character varying NOT NULL,
55+
"weeklyHours" integer NOT NULL,
56+
"experienceType" "public"."experience_type_enum" NOT NULL,
57+
"interest" "public"."interest_area_enum" NOT NULL,
58+
"license" character varying,
59+
"appStatus" "public"."app_status_enum" NOT NULL DEFAULT 'App submitted',
60+
"isInternational" boolean NOT NULL DEFAULT false,
61+
"isLearner" boolean NOT NULL DEFAULT false,
62+
"referredEmail" character varying,
63+
"referred" boolean NOT NULL DEFAULT false,
64+
CONSTRAINT "PK_application_appId" PRIMARY KEY ("appId")
65+
)`,
66+
);
67+
68+
await queryRunner.query(
69+
`CREATE TABLE "learner" (
70+
"id" SERIAL NOT NULL,
71+
"app_id" integer NOT NULL,
72+
"name" character varying NOT NULL,
73+
"startDate" DATE NOT NULL,
74+
"endDate" DATE NOT NULL,
75+
CONSTRAINT "PK_learner_id" PRIMARY KEY ("id"),
76+
CONSTRAINT "FK_learner_app_id" FOREIGN KEY ("app_id") REFERENCES "application"("appId") ON DELETE CASCADE
77+
)`,
78+
);
79+
}
80+
public async down(queryRunner: QueryRunner): Promise<void> {
81+
await queryRunner.query(`DROP TABLE "learner"`);
82+
await queryRunner.query(`DROP TABLE "application"`);
83+
await queryRunner.query(`DROP TABLE "discipline"`);
84+
await queryRunner.query(`DROP TABLE "admin"`);
85+
await queryRunner.query(`DROP TYPE "public"."interest_area_enum"`);
86+
await queryRunner.query(`DROP TYPE "public"."experience_type_enum"`);
87+
await queryRunner.query(`DROP TYPE "public"."school_enum"`);
88+
await queryRunner.query(`DROP TYPE "public"."app_status_enum"`);
89+
await queryRunner.query(`DROP TYPE "public"."site_enum"`);
90+
await queryRunner.query(`DROP TYPE "public"."commit_length_enum"`);
91+
}
92+
}

example.env

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
NX_DB_HOST=localhost,
2-
NX_DB_USERNAME=postgres,
3-
NX_DB_PASSWORD=,
4-
NX_DB_DATABASE=jumpstart,
5-
NX_DB_PORT=5432,
1+
NX_DB_HOST=localhost
2+
NX_DB_PORT=5432
3+
NX_DB_USERNAME=postgres
4+
NX_DB_PASSWORD=
5+
NX_DB_DATABASE=bhchp

0 commit comments

Comments
 (0)