-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathSQL_InitDb.sql
89 lines (79 loc) · 2.29 KB
/
SQL_InitDb.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
/*Create Db*/
IF NOT EXISTS (SELECT 1 FROM sys.databases WHERE [Name] = 'GrimaceTasks')
CREATE DATABASE GrimaceTasks;
GO
/*Connect Db*/
IF EXISTS (SELECT 1 FROM sys.databases WHERE [Name] = 'GrimaceTasks')
USE GrimaceTasks;
GO
/*Create login and user*/
IF NOT EXISTS (SELECT 1 FROM sys.sql_logins WHERE [name] = 'GrimaceTasks')
CREATE LOGIN [Grimace]
WITH Password = N'Pa$$word',
DEFAULT_DATABASE = [GrimaceTasks]
CREATE USER [Grimace] FOR LOGIN [Grimace] WITH DEFAULT_SCHEMA=[Grimace]
ALTER ROLE [db_owner] ADD MEMBER [Grimace];
GO
/*Create schema in db for system tables*/
IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE [name] = 'Grimace')
BEGIN
EXEC('CREATE SCHEMA Grimace');
END
GO
/*SocialNetworks table*/
IF NOT EXISTS (SELECT 1 FROM sys.all_objects WHERE [name] = 'SocialNetworks')
CREATE TABLE Grimace.SocialNetworks (
[Id] TINYINT PRIMARY KEY IDENTITY,
[Name] NVARCHAR(100) NOT NULL
)
GO
/*Posts table*/
IF NOT EXISTS (SELECT 1 FROM sys.all_objects WHERE [name] = 'Posts')
CREATE TABLE Grimace.Posts (
[Id] BIGINT PRIMARY KEY,
[Points] INT,
[Url] NVARCHAR(500) NOT NULL,
[CreateDate] DATETIME2 NOT NULL,
[UpdatedAt] DATETIME2 NOT NULL,
[Expires] DATETIME2 NOT NULL,
[SocialNetworkId] BIGINT NOT NULL FOREIGN KEY REFERENCES Grimace.SocialNetworks(Id)
)
GO
/*Participants table*/
IF NOT EXISTS (SELECT 1 FROM sys.all_objects WHERE [name] = 'Participants')
CREATE TABLE Grimace.Participants (
[Id] BIGINT PRIMARY KEY,
[UserName] NVARCHAR(300) NOT NULL,
[ParentId] BIGINT NOT NULL,
[SocialNetworkId] BIGINT NOT NULL FOREIGN KEY REFERENCES Grimace.SocialNetworks(Id)
)
GO
/*TasksResults table*/
IF NOT EXISTS (SELECT 1 FROM sys.all_objects WHERE [name] = 'CheckResults')
CREATE TABLE Grimace.CheckResults (
[Id] BIGINT PRIMARY KEY IDENTITY,
[UserId] BIGINT,
[TaskId] BIGINT,
[Points] INT,
[DateChecks] DATETIME2
)
GO
/*Create schema in db for system tables*/
IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE [name] = 'Infra')
BEGIN
EXEC('CREATE SCHEMA Infra');
END
GO
/*ApiLogs table*/
IF NOT EXISTS (SELECT 1 FROM sys.all_objects WHERE [name] = 'ApiLogs')
CREATE TABLE Infra.ApiLogs (
[Id] BIGINT PRIMARY KEY IDENTITY,
[Request] NVARCHAR(MAX),
[Response] NVARCHAR(MAX),
[MethodType] VARCHAR(10),
[NameMethod] VARCHAR(20),
[CreateDate] DATETIME2
)
GO