]>
Commit | Line | Data |
---|---|---|
e364e31e C |
1 | |
2 | import * as Sequelize from 'sequelize' | |
3 | ||
4 | async function up (utils: { | |
5 | transaction: Sequelize.Transaction | |
6 | queryInterface: Sequelize.QueryInterface | |
7 | sequelize: Sequelize.Sequelize | |
8 | db: any | |
9 | }): Promise<void> { | |
10 | { | |
11 | const query = ` | |
12 | CREATE TABLE IF NOT EXISTS "userRegistration" ( | |
13 | "id" serial, | |
14 | "state" integer NOT NULL, | |
15 | "registrationReason" text NOT NULL, | |
16 | "moderationResponse" text, | |
17 | "password" varchar(255), | |
18 | "username" varchar(255) NOT NULL, | |
19 | "email" varchar(400) NOT NULL, | |
20 | "emailVerified" boolean, | |
21 | "accountDisplayName" varchar(255), | |
22 | "channelHandle" varchar(255), | |
23 | "channelDisplayName" varchar(255), | |
24 | "userId" integer REFERENCES "user" ("id") ON DELETE SET NULL ON UPDATE CASCADE, | |
25 | "createdAt" timestamp with time zone NOT NULL, | |
26 | "updatedAt" timestamp with time zone NOT NULL, | |
27 | PRIMARY KEY ("id") | |
28 | ); | |
29 | ` | |
30 | await utils.sequelize.query(query, { transaction: utils.transaction }) | |
31 | } | |
32 | ||
33 | { | |
34 | await utils.queryInterface.addColumn('userNotification', 'userRegistrationId', { | |
35 | type: Sequelize.INTEGER, | |
36 | defaultValue: null, | |
37 | allowNull: true, | |
38 | references: { | |
39 | model: 'userRegistration', | |
40 | key: 'id' | |
41 | }, | |
42 | onUpdate: 'CASCADE', | |
43 | onDelete: 'SET NULL' | |
44 | }, { transaction: utils.transaction }) | |
45 | } | |
46 | } | |
47 | ||
48 | async function down (utils: { | |
49 | queryInterface: Sequelize.QueryInterface | |
50 | transaction: Sequelize.Transaction | |
51 | }) { | |
52 | await utils.queryInterface.dropTable('videoChannelSync', { transaction: utils.transaction }) | |
53 | } | |
54 | ||
55 | export { | |
56 | up, | |
57 | down | |
58 | } |