Database Manager
done: + master.sql as resource + implemented incremental database changes also for Master + dbUp sql script variables implemented + improved database handling and creation code + simpified database creation + almost all Database and Tenant creation moved to DatabaseManager.cs (rest code marked with TODO) + Unattended install of master can be performed by settings in appsettings.json + Improved IsInstalled checking + Removed DBSchema field from Tenant + Default database and site creation moved to Program.Main
This commit is contained in:
452
Oqtane.Server/Scripts/Tenant.00.00.00.sql
Normal file
452
Oqtane.Server/Scripts/Tenant.00.00.00.sql
Normal file
@ -0,0 +1,452 @@
|
||||
/*
|
||||
|
||||
Create tables
|
||||
|
||||
*/
|
||||
|
||||
CREATE TABLE [dbo].[Site](
|
||||
[SiteId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[TenantId] [int] NOT NULL,
|
||||
[Name] [nvarchar](200) NOT NULL,
|
||||
[LogoFileId] [int] NULL,
|
||||
[DefaultThemeType] [nvarchar](200) NOT NULL,
|
||||
[DefaultLayoutType] [nvarchar](200) NOT NULL,
|
||||
[DefaultContainerType] [nvarchar](200) NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
[DeletedBy] [nvarchar](256) NULL,
|
||||
[DeletedOn] [datetime] NULL,
|
||||
[IsDeleted][bit] NOT NULL,
|
||||
CONSTRAINT [PK_Site] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[SiteId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[Page](
|
||||
[PageId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[SiteId] [int] NOT NULL,
|
||||
[Path] [nvarchar](50) NOT NULL,
|
||||
[Name] [nvarchar](50) NOT NULL,
|
||||
[ThemeType] [nvarchar](200) NULL,
|
||||
[Icon] [nvarchar](50) NOT NULL,
|
||||
[ParentId] [int] NULL,
|
||||
[Order] [int] NOT NULL,
|
||||
[IsNavigation] [bit] NOT NULL,
|
||||
[LayoutType] [nvarchar](200) NOT NULL,
|
||||
[EditMode] [bit] NOT NULL,
|
||||
[UserId] [int] NULL,
|
||||
[IsPersonalizable] [bit] NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
[DeletedBy] [nvarchar](256) NULL,
|
||||
[DeletedOn] [datetime] NULL,
|
||||
[IsDeleted][bit] NOT NULL,
|
||||
CONSTRAINT [PK_Page] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[PageId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[Module](
|
||||
[ModuleId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[SiteId] [int] NOT NULL,
|
||||
[ModuleDefinitionName] [nvarchar](200) NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
CONSTRAINT [PK_Module] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[ModuleId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[PageModule](
|
||||
[PageModuleId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[PageId] [int] NOT NULL,
|
||||
[ModuleId] [int] NOT NULL,
|
||||
[Title] [nvarchar](200) NOT NULL,
|
||||
[Pane] [nvarchar](50) NOT NULL,
|
||||
[Order] [int] NOT NULL,
|
||||
[ContainerType] [nvarchar](200) NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
[DeletedBy] [nvarchar](256) NULL,
|
||||
[DeletedOn] [datetime] NULL,
|
||||
[IsDeleted][bit] NOT NULL,
|
||||
CONSTRAINT [PK_PageModule] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[PageModuleId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[User](
|
||||
[UserId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[Username] [nvarchar](256) NOT NULL,
|
||||
[DisplayName] [nvarchar](50) NOT NULL,
|
||||
[Email] [nvarchar](256) NOT NULL,
|
||||
[PhotoFileId] [int] NULL,
|
||||
[LastLoginOn] [datetime] NULL,
|
||||
[LastIPAddress] [nvarchar](50) NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
[DeletedBy] [nvarchar](256) NULL,
|
||||
[DeletedOn] [datetime] NULL,
|
||||
[IsDeleted][bit] NOT NULL,
|
||||
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[UserId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[Role](
|
||||
[RoleId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[SiteId] [int] NULL,
|
||||
[Name] [nvarchar](256) NOT NULL,
|
||||
[Description] [nvarchar](50) NOT NULL,
|
||||
[IsAutoAssigned] [bit] NOT NULL,
|
||||
[IsSystem] [bit] NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
CONSTRAINT [PK_Role] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[RoleId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[UserRole](
|
||||
[UserRoleId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[UserId] [int] NOT NULL,
|
||||
[RoleId] [int] NOT NULL,
|
||||
[EffectiveDate] [datetime] NULL,
|
||||
[ExpiryDate] [datetime] NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
CONSTRAINT [PK_UserRole] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[UserRoleId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[Permission](
|
||||
[PermissionId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[SiteId] [int] NOT NULL,
|
||||
[EntityName] [nvarchar](50) NOT NULL,
|
||||
[EntityId] [int] NOT NULL,
|
||||
[PermissionName] [nvarchar](50) NOT NULL,
|
||||
[RoleId] [int] NULL,
|
||||
[UserId] [int] NULL,
|
||||
[IsAuthorized] [bit] NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
CONSTRAINT [PK_Permission] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[PermissionId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[Setting](
|
||||
[SettingId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[EntityName] [nvarchar](50) NOT NULL,
|
||||
[EntityId] [int] NOT NULL,
|
||||
[SettingName] [nvarchar](50) NOT NULL,
|
||||
[SettingValue] [nvarchar](max) NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
CONSTRAINT [PK_Setting] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[SettingId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[Profile](
|
||||
[ProfileId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[SiteId] [int] NULL,
|
||||
[Name] [nvarchar](50) NOT NULL,
|
||||
[Title] [nvarchar](50) NOT NULL,
|
||||
[Description] [nvarchar](256) NULL,
|
||||
[Category] [nvarchar](50) NOT NULL,
|
||||
[ViewOrder] [int] NOT NULL,
|
||||
[MaxLength] [int] NOT NULL,
|
||||
[DefaultValue] [nvarchar](2000) NULL,
|
||||
[IsRequired] [bit] NOT NULL,
|
||||
[IsPrivate] [bit] NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
CONSTRAINT [PK_Profile] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[ProfileId] ASC
|
||||
)
|
||||
)
|
||||
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[Log] (
|
||||
|
||||
[LogId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[SiteId] [int] NULL,
|
||||
[LogDate] [datetime] NOT NULL,
|
||||
[PageId] [int] NULL,
|
||||
[ModuleId] [int] NULL,
|
||||
[UserId] [int] NULL,
|
||||
[Url] [nvarchar](2048) NOT NULL,
|
||||
[Server] [nvarchar](200) NOT NULL,
|
||||
[Category] [nvarchar](200) NOT NULL,
|
||||
[Feature] [nvarchar](200) NOT NULL,
|
||||
[Function] [nvarchar](20) NOT NULL,
|
||||
[Level] [nvarchar](20) NOT NULL,
|
||||
[Message] [nvarchar](max) NOT NULL,
|
||||
[MessageTemplate] [nvarchar](max) NOT NULL,
|
||||
[Exception] [nvarchar](max) NULL,
|
||||
[Properties] [nvarchar](max) NULL
|
||||
|
||||
CONSTRAINT [PK_Log] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[LogId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[Notification](
|
||||
[NotificationId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[SiteId] [int] NOT NULL,
|
||||
[FromUserId] [int] NULL,
|
||||
[ToUserId] [int] NULL,
|
||||
[ToEmail] [nvarchar](256) NOT NULL,
|
||||
[Subject] [nvarchar](256) NOT NULL,
|
||||
[Body] [nvarchar](max) NOT NULL,
|
||||
[ParentId] [int] NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[IsDelivered] [bit] NOT NULL,
|
||||
[DeliveredOn] [datetime] NULL,
|
||||
[DeletedBy] [nvarchar](256) NULL,
|
||||
[DeletedOn] [datetime] NULL,
|
||||
[IsDeleted][bit] NOT NULL,
|
||||
CONSTRAINT [PK_Notification] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[NotificationId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[Folder](
|
||||
[FolderId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[SiteId] [int] NOT NULL,
|
||||
[Path] [nvarchar](50) NOT NULL,
|
||||
[Name] [nvarchar](50) NOT NULL,
|
||||
[ParentId] [int] NULL,
|
||||
[Order] [int] NOT NULL,
|
||||
[IsSystem] [bit] NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
[DeletedBy] [nvarchar](256) NULL,
|
||||
[DeletedOn] [datetime] NULL,
|
||||
[IsDeleted][bit] NOT NULL,
|
||||
CONSTRAINT [PK_Folder] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[FolderId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[File](
|
||||
[FileId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[FolderId] [int] NOT NULL,
|
||||
[Name] [nvarchar](250) NOT NULL,
|
||||
[Extension] [nvarchar](50) NOT NULL,
|
||||
[Size] [int] NOT NULL,
|
||||
[ImageHeight] [int] NOT NULL,
|
||||
[ImageWidth] [int] NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
[DeletedBy] [nvarchar](256) NULL,
|
||||
[DeletedOn] [datetime] NULL,
|
||||
[IsDeleted][bit] NOT NULL,
|
||||
CONSTRAINT [PK_File] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[FileId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[HtmlText](
|
||||
[HtmlTextId] [int] IDENTITY(1,1) NOT NULL,
|
||||
[ModuleId] [int] NOT NULL,
|
||||
[Content] [nvarchar](max) NOT NULL,
|
||||
[CreatedBy] [nvarchar](256) NOT NULL,
|
||||
[CreatedOn] [datetime] NOT NULL,
|
||||
[ModifiedBy] [nvarchar](256) NOT NULL,
|
||||
[ModifiedOn] [datetime] NOT NULL,
|
||||
CONSTRAINT [PK_HtmlText] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[HtmlTextId] ASC
|
||||
)
|
||||
)
|
||||
GO
|
||||
|
||||
/*
|
||||
|
||||
Create foreign key relationships
|
||||
|
||||
*/
|
||||
ALTER TABLE [dbo].[Module] WITH CHECK ADD CONSTRAINT [FK_Module_Site] FOREIGN KEY([SiteId])
|
||||
REFERENCES [dbo].[Site] ([SiteId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[Page] WITH CHECK ADD CONSTRAINT [FK_Page_Site] FOREIGN KEY([SiteId])
|
||||
REFERENCES [dbo].[Site] ([SiteId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[PageModule] WITH CHECK ADD CONSTRAINT [FK_PageModule_Module] FOREIGN KEY([ModuleId])
|
||||
REFERENCES [dbo].[Module] ([ModuleId])
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[PageModule] WITH CHECK ADD CONSTRAINT [FK_PageModule_Page] FOREIGN KEY([PageId])
|
||||
REFERENCES [dbo].[Page] ([PageId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[Role] WITH CHECK ADD CONSTRAINT [FK_Role_Site] FOREIGN KEY ([SiteId])
|
||||
REFERENCES [dbo].[Site] ([SiteId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[UserRole] WITH CHECK ADD CONSTRAINT [FK_UserRole_User] FOREIGN KEY ([UserId])
|
||||
REFERENCES [dbo].[User] ([UserId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[UserRole] WITH CHECK ADD CONSTRAINT [FK_UserRole_Role] FOREIGN KEY ([RoleId])
|
||||
REFERENCES [dbo].[Role] ([RoleId])
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[Permission] WITH CHECK ADD CONSTRAINT [FK_Permission_Site] FOREIGN KEY ([SiteId])
|
||||
REFERENCES [dbo].[Site] ([SiteId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[Permission] WITH CHECK ADD CONSTRAINT [FK_Permission_User] FOREIGN KEY ([UserId])
|
||||
REFERENCES [dbo].[User] ([UserId])
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[Permission] WITH CHECK ADD CONSTRAINT [FK_Permission_Role] FOREIGN KEY ([RoleId])
|
||||
REFERENCES [dbo].[Role] ([RoleId])
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[Profile] WITH NOCHECK ADD CONSTRAINT [FK_Profile_Sites] FOREIGN KEY([SiteId])
|
||||
REFERENCES [dbo].[Site] ([SiteId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[Log] WITH CHECK ADD CONSTRAINT [FK_Log_Site] FOREIGN KEY([SiteId])
|
||||
REFERENCES [dbo].[Site] ([SiteId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[Notification] WITH CHECK ADD CONSTRAINT [FK_Notification_Site] FOREIGN KEY([SiteId])
|
||||
REFERENCES [dbo].[Site] ([SiteId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[Folder] WITH CHECK ADD CONSTRAINT [FK_Folder_Site] FOREIGN KEY([SiteId])
|
||||
REFERENCES [dbo].[Site] ([SiteId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[File] WITH CHECK ADD CONSTRAINT [FK_File_Folder] FOREIGN KEY([FolderId])
|
||||
REFERENCES [dbo].[Folder] ([FolderId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[HtmlText] WITH CHECK ADD CONSTRAINT [FK_HtmlText_Module] FOREIGN KEY([ModuleId])
|
||||
REFERENCES [dbo].[Module] ([ModuleId])
|
||||
ON DELETE CASCADE
|
||||
GO
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Create indexes
|
||||
|
||||
*/
|
||||
|
||||
CREATE UNIQUE NONCLUSTERED INDEX IX_Setting ON [dbo].Setting
|
||||
(
|
||||
EntityName,
|
||||
EntityId,
|
||||
SettingName
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE UNIQUE NONCLUSTERED INDEX IX_User ON [dbo].[User]
|
||||
(
|
||||
Username
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE UNIQUE NONCLUSTERED INDEX IX_Permission ON [dbo].Permission
|
||||
(
|
||||
SiteId,
|
||||
EntityName,
|
||||
EntityId,
|
||||
PermissionName,
|
||||
RoleId,
|
||||
UserId
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE UNIQUE NONCLUSTERED INDEX IX_Page ON [dbo].Page
|
||||
(
|
||||
SiteId,
|
||||
[Path],
|
||||
UserId
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE UNIQUE NONCLUSTERED INDEX IX_UserRole ON [dbo].UserRole
|
||||
(
|
||||
RoleId,
|
||||
UserId
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE UNIQUE NONCLUSTERED INDEX IX_Folder ON [dbo].Folder
|
||||
(
|
||||
SiteId,
|
||||
[Path]
|
||||
) ON [PRIMARY]
|
||||
GO
|
Reference in New Issue
Block a user