Showing
1 changed file
with
131 additions
and
0 deletions
1 | +# Migration `20200419160117-init` | ||
2 | + | ||
3 | +This migration has been generated by sdy at 4/19/2020, 4:01:17 PM. | ||
4 | +You can check out the [state of the schema](./schema.prisma) after the migration. | ||
5 | + | ||
6 | +## Database Steps | ||
7 | + | ||
8 | +```sql | ||
9 | +CREATE TABLE `chat_schema`.`User` ( | ||
10 | + `avatarUrl` varchar(191) , | ||
11 | + `bio` varchar(191) , | ||
12 | + `createdAt` datetime DEFAULT CURRENT_TIMESTAMP , | ||
13 | + `email` varchar(191) NOT NULL , | ||
14 | + `id` int NOT NULL AUTO_INCREMENT, | ||
15 | + `loginSecret` varchar(191) , | ||
16 | + `name` varchar(191) NOT NULL , | ||
17 | + `password` varchar(191) NOT NULL , | ||
18 | + PRIMARY KEY (`id`) | ||
19 | +) | ||
20 | +DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci | ||
21 | + | ||
22 | +CREATE TABLE `chat_schema`.`Room` ( | ||
23 | + `id` int NOT NULL AUTO_INCREMENT, | ||
24 | + PRIMARY KEY (`id`) | ||
25 | +) | ||
26 | +DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci | ||
27 | + | ||
28 | +CREATE TABLE `chat_schema`.`Category` ( | ||
29 | + `id` int NOT NULL AUTO_INCREMENT, | ||
30 | + `name` varchar(191) DEFAULT '' , | ||
31 | + PRIMARY KEY (`id`) | ||
32 | +) | ||
33 | +DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci | ||
34 | + | ||
35 | +CREATE TABLE `chat_schema`.`Message` ( | ||
36 | + `id` int NOT NULL AUTO_INCREMENT, | ||
37 | + `senderId` int NOT NULL , | ||
38 | + `text` varchar(191) DEFAULT '' , | ||
39 | + PRIMARY KEY (`id`) | ||
40 | +) | ||
41 | +DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci | ||
42 | + | ||
43 | +CREATE TABLE `chat_schema`.`_RoomToUser` ( | ||
44 | + `A` int NOT NULL , | ||
45 | + `B` int NOT NULL | ||
46 | +) | ||
47 | +DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci | ||
48 | + | ||
49 | +CREATE TABLE `chat_schema`.`_CategoryToRoom` ( | ||
50 | + `A` int NOT NULL , | ||
51 | + `B` int NOT NULL | ||
52 | +) | ||
53 | +DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci | ||
54 | + | ||
55 | +CREATE UNIQUE INDEX `User.email` ON `chat_schema`.`User`(`email`) | ||
56 | + | ||
57 | +CREATE UNIQUE INDEX `_RoomToUser_AB_unique` ON `chat_schema`.`_RoomToUser`(`A`,`B`) | ||
58 | + | ||
59 | +CREATE INDEX `_RoomToUser_B_index` ON `chat_schema`.`_RoomToUser`(`B`) | ||
60 | + | ||
61 | +CREATE UNIQUE INDEX `_CategoryToRoom_AB_unique` ON `chat_schema`.`_CategoryToRoom`(`A`,`B`) | ||
62 | + | ||
63 | +CREATE INDEX `_CategoryToRoom_B_index` ON `chat_schema`.`_CategoryToRoom`(`B`) | ||
64 | + | ||
65 | +ALTER TABLE `chat_schema`.`Message` ADD FOREIGN KEY (`senderId`) REFERENCES `chat_schema`.`User`(`id`) ON DELETE CASCADE ON UPDATE CASCADE | ||
66 | + | ||
67 | +ALTER TABLE `chat_schema`.`_RoomToUser` ADD FOREIGN KEY (`A`) REFERENCES `chat_schema`.`Room`(`id`) ON DELETE CASCADE ON UPDATE CASCADE | ||
68 | + | ||
69 | +ALTER TABLE `chat_schema`.`_RoomToUser` ADD FOREIGN KEY (`B`) REFERENCES `chat_schema`.`User`(`id`) ON DELETE CASCADE ON UPDATE CASCADE | ||
70 | + | ||
71 | +ALTER TABLE `chat_schema`.`_CategoryToRoom` ADD FOREIGN KEY (`A`) REFERENCES `chat_schema`.`Category`(`id`) ON DELETE CASCADE ON UPDATE CASCADE | ||
72 | + | ||
73 | +ALTER TABLE `chat_schema`.`_CategoryToRoom` ADD FOREIGN KEY (`B`) REFERENCES `chat_schema`.`Room`(`id`) ON DELETE CASCADE ON UPDATE CASCADE | ||
74 | + | ||
75 | +DROP TABLE `chat_schema`.`_migration`; | ||
76 | + | ||
77 | +DROP TABLE `chat_schema`.`test`; | ||
78 | +``` | ||
79 | + | ||
80 | +## Changes | ||
81 | + | ||
82 | +```diff | ||
83 | +diff --git schema.prisma schema.prisma | ||
84 | +migration ..20200419160117-init | ||
85 | +--- datamodel.dml | ||
86 | ++++ datamodel.dml | ||
87 | +@@ -1,0 +1,41 @@ | ||
88 | ++generator client { | ||
89 | ++ provider = "prisma-client-js" | ||
90 | ++ binaryTargets = ["native", "debian-openssl-1.1.x"] | ||
91 | ++} | ||
92 | ++ | ||
93 | ++datasource db { | ||
94 | ++ provider = "mysql" | ||
95 | ++ url = env("DATABASE_URL") | ||
96 | ++} | ||
97 | ++ | ||
98 | ++model User { | ||
99 | ++ id Int @default(autoincrement()) @id | ||
100 | ++ avatarUrl String? | ||
101 | ++ email String @unique | ||
102 | ++ password String | ||
103 | ++ name String | ||
104 | ++ loginSecret String? | ||
105 | ++ bio String? | ||
106 | ++ rooms Room[] @relation(references: [id]) | ||
107 | ++ messages Message[] | ||
108 | ++ createdAt DateTime? @default(now()) | ||
109 | ++} | ||
110 | ++ | ||
111 | ++model Room { | ||
112 | ++ id Int @default(autoincrement()) @id | ||
113 | ++ participants User[] @relation(references: [id]) | ||
114 | ++ categories Category[] @relation(references: [id]) | ||
115 | ++} | ||
116 | ++ | ||
117 | ++model Category { | ||
118 | ++ id Int @default(autoincrement()) @id | ||
119 | ++ name String? @default("") | ||
120 | ++ rooms Room[] @relation(references: [id]) | ||
121 | ++} | ||
122 | ++ | ||
123 | ++model Message { | ||
124 | ++ id Int @default(autoincrement()) @id | ||
125 | ++ text String? @default("") | ||
126 | ++ sender User @relation(fields: [senderId], references: [id]) | ||
127 | ++ senderId Int | ||
128 | ++} | ||
129 | +``` | ||
130 | + | ||
131 | + |
-
Please register or login to post a comment