164 lines
6.7 KiB
C#
164 lines
6.7 KiB
C#
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Oqtane.Migrations.EntityBuilders;
|
|
using Oqtane.Repository;
|
|
|
|
|
|
namespace Oqtane.Migrations
|
|
{
|
|
[DbContext(typeof(TenantDBContext))]
|
|
[Migration("Tenant.01.00.00.00")]
|
|
public class InitializeTenant : Migration
|
|
{
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
//Create Site table
|
|
var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder);
|
|
siteEntityBuilder.Create();
|
|
|
|
//Create Page table
|
|
var pageEntityBuilder = new PageEntityBuilder(migrationBuilder);
|
|
pageEntityBuilder.Create();
|
|
pageEntityBuilder.AddIndex("IX_Page", new [] {"SiteId", "Path", "UserId"}, true);
|
|
|
|
//Add Column to Page table (for Sql Server only) we will drop it later for Sql Server only
|
|
if (migrationBuilder.ActiveProvider == "Microsoft.EntityFrameworkCore.SqlServer")
|
|
{
|
|
pageEntityBuilder.AddBooleanColumn("EditMode");
|
|
}
|
|
|
|
//Create Module table
|
|
var moduleEntityBuilder = new ModuleEntityBuilder(migrationBuilder);
|
|
moduleEntityBuilder.Create();
|
|
|
|
//Create PageModule table
|
|
var pageModuleEntityBuilder = new PageModuleEntityBuilder(migrationBuilder);
|
|
pageModuleEntityBuilder.Create();
|
|
|
|
//Create User table
|
|
var userEntityBuilder = new UserEntityBuilder(migrationBuilder);
|
|
userEntityBuilder.Create();
|
|
userEntityBuilder.AddIndex("IX_User", "Username", true);
|
|
|
|
//Create Role table
|
|
var roleEntityBuilder = new RoleEntityBuilder(migrationBuilder);
|
|
roleEntityBuilder.Create();
|
|
|
|
//Create UserRole table
|
|
var userRoleEntityBuilder = new UserRoleEntityBuilder(migrationBuilder);
|
|
userRoleEntityBuilder.Create();
|
|
userRoleEntityBuilder.AddIndex("IX_UserRole", new [] {"RoleId", "UserId"}, true);
|
|
|
|
//Create Permission table
|
|
var permissionEntityBuilder = new PermissionEntityBuilder(migrationBuilder);
|
|
permissionEntityBuilder.Create();
|
|
permissionEntityBuilder.AddIndex("IX_Permission", new [] {"SiteId", "EntityName", "EntityId", "PermissionName", "RoleId", "UserId"}, true);
|
|
|
|
//Create Setting table
|
|
var settingEntityBuilder = new SettingEntityBuilder(migrationBuilder);
|
|
settingEntityBuilder.Create();
|
|
settingEntityBuilder.AddIndex("IX_Setting", new [] {"EntityName", "EntityId", "SettingName"}, true);
|
|
|
|
//Create Profile table
|
|
var profileEntityBuilder = new ProfileEntityBuilder(migrationBuilder);
|
|
profileEntityBuilder.Create();
|
|
|
|
//Create Log table
|
|
var logEntityBuilder = new LogEntityBuilder(migrationBuilder);
|
|
logEntityBuilder.Create();
|
|
|
|
//Create Notification table
|
|
var notificationEntityBuilder = new NotificationEntityBuilder(migrationBuilder);
|
|
notificationEntityBuilder.Create();
|
|
|
|
//Create Folder table
|
|
var folderEntityBuilder = new FolderEntityBuilder(migrationBuilder);
|
|
folderEntityBuilder.Create();
|
|
folderEntityBuilder.AddIndex("IX_Folder", new [] {"SiteId", "Path"}, true);
|
|
|
|
//Create File table
|
|
var fileEntityBuilder = new FileEntityBuilder(migrationBuilder);
|
|
fileEntityBuilder.Create();
|
|
|
|
//Create AspNetUsers table
|
|
var aspNetUsersEntityBuilder = new AspNetUsersEntityBuilder(migrationBuilder);
|
|
aspNetUsersEntityBuilder.Create();
|
|
aspNetUsersEntityBuilder.AddIndex("EmailIndex", "NormalizedEmail", true);
|
|
aspNetUsersEntityBuilder.AddIndex("UserNameIndex", "NormalizedUserName", true);
|
|
|
|
//Create AspNetUserClaims table
|
|
var aspNetUserClaimsEntityBuilder = new AspNetUserClaimsEntityBuilder(migrationBuilder);
|
|
aspNetUserClaimsEntityBuilder.Create();
|
|
aspNetUserClaimsEntityBuilder.AddIndex("IX_AspNetUserClaims_UserId", "UserId", true);
|
|
|
|
}
|
|
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
//Drop AspNetUserClaims table
|
|
var aspNetUserClaimsEntityBuilder = new AspNetUserClaimsEntityBuilder(migrationBuilder);
|
|
aspNetUserClaimsEntityBuilder.Drop();
|
|
|
|
//Drop AspNetUsers table
|
|
var aspNetUsersEntityBuilder = new AspNetUsersEntityBuilder(migrationBuilder);
|
|
aspNetUsersEntityBuilder.Drop();
|
|
|
|
//Drop File table
|
|
var fileEntityBuilder = new FileEntityBuilder(migrationBuilder);
|
|
fileEntityBuilder.Drop();
|
|
|
|
//Drop Folder table
|
|
var folderEntityBuilder = new FolderEntityBuilder(migrationBuilder);
|
|
folderEntityBuilder.Drop();
|
|
|
|
//Drop Notification table
|
|
var notificationEntityBuilder = new NotificationEntityBuilder(migrationBuilder);
|
|
notificationEntityBuilder.Drop();
|
|
|
|
//Drop Log table
|
|
var logEntityBuilder = new LogEntityBuilder(migrationBuilder);
|
|
logEntityBuilder.Drop();
|
|
|
|
//Drop Profile table
|
|
var profileEntityBuilder = new ProfileEntityBuilder(migrationBuilder);
|
|
profileEntityBuilder.Drop();
|
|
|
|
//Drop Setting table
|
|
var settingEntityBuilder = new SettingEntityBuilder(migrationBuilder);
|
|
settingEntityBuilder.Drop();
|
|
|
|
//Drop Permission table
|
|
var permissionEntityBuilder = new PermissionEntityBuilder(migrationBuilder);
|
|
permissionEntityBuilder.Drop();
|
|
|
|
//Drop UserRole table
|
|
var userRoleEntityBuilder = new UserRoleEntityBuilder(migrationBuilder);
|
|
userRoleEntityBuilder.Drop();
|
|
|
|
//Drop Role table
|
|
var roleEntityBuilder = new RoleEntityBuilder(migrationBuilder);
|
|
roleEntityBuilder.Drop();
|
|
|
|
//Drop User table
|
|
var userEntityBuilder = new UserEntityBuilder(migrationBuilder);
|
|
userEntityBuilder.Drop();
|
|
|
|
//Drop PageModule table
|
|
var pageModuleEntityBuilder = new PageModuleEntityBuilder(migrationBuilder);
|
|
pageModuleEntityBuilder.Drop();
|
|
|
|
//Drop Module table
|
|
var moduleEntityBuilder = new ModuleEntityBuilder(migrationBuilder);
|
|
moduleEntityBuilder.Drop();
|
|
|
|
//Drop Page table
|
|
var pageEntityBuilder = new PageEntityBuilder(migrationBuilder);
|
|
pageEntityBuilder.Drop();
|
|
|
|
//Drop Site table
|
|
var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder);
|
|
siteEntityBuilder.Drop();
|
|
}
|
|
}
|
|
}
|