Skip to content

Commit bb2aad9

Browse files
committed
feat(data): Cria script a partir da Migration
Utiliza-se o comando 'dotnet ef migrations script -p <projeto.csprog> -o <arquivo.sql>' para exportar a migration em um script SQL
1 parent 084a4a2 commit bb2aad9

File tree

1 file changed

+117
-0
lines changed

1 file changed

+117
-0
lines changed

Blog/Data/Scripts/database-create.sql

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
IF OBJECT_ID(N'[__EFMigrationsHistory]') IS NULL
2+
BEGIN
3+
CREATE TABLE [__EFMigrationsHistory] (
4+
[MigrationId] nvarchar(150) NOT NULL,
5+
[ProductVersion] nvarchar(32) NOT NULL,
6+
CONSTRAINT [PK___EFMigrationsHistory] PRIMARY KEY ([MigrationId])
7+
);
8+
END;
9+
GO
10+
11+
BEGIN TRANSACTION;
12+
GO
13+
14+
CREATE TABLE [Category] (
15+
[Id] int NOT NULL IDENTITY,
16+
[Slug] VARCHAR(80) NOT NULL,
17+
[Title] NVARCHAR(80) NOT NULL,
18+
CONSTRAINT [PK_Category] PRIMARY KEY ([Id])
19+
);
20+
GO
21+
22+
CREATE TABLE [Role] (
23+
[Id] int NOT NULL IDENTITY,
24+
[Name] VARCHAR(80) NOT NULL,
25+
[Slug] VARCHAR(80) NOT NULL,
26+
CONSTRAINT [PK_Role] PRIMARY KEY ([Id])
27+
);
28+
GO
29+
30+
CREATE TABLE [Tag] (
31+
[Id] int NOT NULL IDENTITY,
32+
[Name] VARCHAR(80) NOT NULL,
33+
[Slug] VARCHAR(80) NOT NULL,
34+
CONSTRAINT [PK_Tag] PRIMARY KEY ([Id])
35+
);
36+
GO
37+
38+
CREATE TABLE [User] (
39+
[Id] int NOT NULL IDENTITY,
40+
[Bio] TEXT NOT NULL,
41+
[Email] VARCHAR(200) NOT NULL,
42+
[Image] VARCHAR(2000) NOT NULL,
43+
[Name] NVARCHAR(80) NOT NULL,
44+
[PasswordHash] VARCHAR(255) NOT NULL,
45+
[Slug] VARCHAR(80) NOT NULL,
46+
CONSTRAINT [PK_User] PRIMARY KEY ([Id])
47+
);
48+
GO
49+
50+
CREATE TABLE [Post] (
51+
[Id] int NOT NULL IDENTITY,
52+
[AuthorId] int NOT NULL,
53+
[Body] TEXT NOT NULL,
54+
[CategoryId] int NOT NULL,
55+
[CreateDate] SMALLDATETIME NOT NULL DEFAULT (GETDATE()),
56+
[LastUpdateDate] SMALLDATETIME NOT NULL DEFAULT (GETDATE()),
57+
[Slug] VARCHAR(80) NOT NULL,
58+
[Summary] VARCHAR(255) NOT NULL,
59+
[Title] VARCHAR(160) NOT NULL,
60+
CONSTRAINT [PK_Post] PRIMARY KEY ([Id]),
61+
CONSTRAINT [FK_Post_Author] FOREIGN KEY ([AuthorId]) REFERENCES [User] ([Id]) ON DELETE CASCADE,
62+
CONSTRAINT [FK_Post_Category] FOREIGN KEY ([CategoryId]) REFERENCES [Category] ([Id]) ON DELETE CASCADE
63+
);
64+
GO
65+
66+
CREATE TABLE [UserRole] (
67+
[RoleId] int NOT NULL,
68+
[UserId] int NOT NULL,
69+
CONSTRAINT [PK_UserRole] PRIMARY KEY ([RoleId], [UserId]),
70+
CONSTRAINT [FK_UserRole_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [Role] ([Id]) ON DELETE CASCADE,
71+
CONSTRAINT [FK_UserRole_UserId] FOREIGN KEY ([UserId]) REFERENCES [User] ([Id]) ON DELETE CASCADE
72+
);
73+
GO
74+
75+
CREATE TABLE [PostTag] (
76+
[PostId] int NOT NULL,
77+
[TagId] int NOT NULL,
78+
CONSTRAINT [PK_PostTag] PRIMARY KEY ([PostId], [TagId]),
79+
CONSTRAINT [FK_PostTag_PostId] FOREIGN KEY ([PostId]) REFERENCES [Post] ([Id]) ON DELETE CASCADE,
80+
CONSTRAINT [FK_PostTag_TagId] FOREIGN KEY ([TagId]) REFERENCES [Tag] ([Id]) ON DELETE CASCADE
81+
);
82+
GO
83+
84+
CREATE UNIQUE INDEX [IX_Category_Slug] ON [Category] ([Slug]);
85+
GO
86+
87+
CREATE INDEX [IX_Post_AuthorId] ON [Post] ([AuthorId]);
88+
GO
89+
90+
CREATE INDEX [IX_Post_CategoryId] ON [Post] ([CategoryId]);
91+
GO
92+
93+
CREATE UNIQUE INDEX [IX_Post_Slug] ON [Post] ([Slug]);
94+
GO
95+
96+
CREATE INDEX [IX_PostTag_TagId] ON [PostTag] ([TagId]);
97+
GO
98+
99+
CREATE UNIQUE INDEX [IX_Role_Slug] ON [Role] ([Slug]);
100+
GO
101+
102+
CREATE UNIQUE INDEX [IX_Tag_Slug] ON [Tag] ([Slug]);
103+
GO
104+
105+
CREATE UNIQUE INDEX [IX_User_Slug] ON [User] ([Slug]);
106+
GO
107+
108+
CREATE INDEX [IX_UserRole_UserId] ON [UserRole] ([UserId]);
109+
GO
110+
111+
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
112+
VALUES (N'20221108003635_InitialCreate', N'7.0.0');
113+
GO
114+
115+
COMMIT;
116+
GO
117+

0 commit comments

Comments
 (0)