70 lines
3.1 KiB
C#
70 lines
3.1 KiB
C#
using System.Collections.Generic;
|
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Oqtane.Databases.Interfaces;
|
|
using Oqtane.Interfaces;
|
|
using Oqtane.Migrations.EntityBuilders;
|
|
using Oqtane.Repository;
|
|
|
|
namespace Oqtane.Migrations
|
|
{
|
|
[DbContext(typeof(TenantDBContext))]
|
|
[Migration("Tenant.01.00.01.00")]
|
|
public class AddAdditionalIndexesInTenant : MultiDatabaseMigration
|
|
{
|
|
public AddAdditionalIndexesInTenant(IOqtaneDatabase database) : base(database)
|
|
{
|
|
}
|
|
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
//Create Index on Site
|
|
var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase);
|
|
siteEntityBuilder.AddIndex("IX_Site", new [] {"TenantId", "Name"}, true);
|
|
|
|
//Create Index on Role table
|
|
var roleEntityBuilder = new RoleEntityBuilder(migrationBuilder, ActiveDatabase);
|
|
roleEntityBuilder.AddIndex("IX_Role", new [] {"SiteId", "Name"}, true);
|
|
|
|
//Create Index on Profile table
|
|
var profileEntityBuilder = new ProfileEntityBuilder(migrationBuilder, ActiveDatabase);
|
|
profileEntityBuilder.AddIndex("IX_Profile", new [] {"SiteId", "Name"}, true);
|
|
|
|
//Create Index on File table
|
|
var fileEntityBuilder = new FileEntityBuilder(migrationBuilder, ActiveDatabase);
|
|
fileEntityBuilder.AddIndex("IX_File", new [] {"FolderId", "Name"}, true);
|
|
|
|
//Add Columns to Notification table
|
|
var notificationEntityBuilder = new NotificationEntityBuilder(migrationBuilder, ActiveDatabase);
|
|
notificationEntityBuilder.AddStringColumn("FromDisplayName", 50, true);
|
|
notificationEntityBuilder.AddStringColumn("FromEmail", 256, true);
|
|
notificationEntityBuilder.AddStringColumn("ToDisplayName", 50, true);
|
|
}
|
|
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
//Drop Index on Site table
|
|
var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase);
|
|
siteEntityBuilder.DropIndex("IX_Site");
|
|
|
|
//Drop Index on Role table
|
|
var roleEntityBuilder = new RoleEntityBuilder(migrationBuilder, ActiveDatabase);
|
|
roleEntityBuilder.DropIndex("IX_Role");
|
|
|
|
//Drop Index on Profile table
|
|
var profileEntityBuilder = new ProfileEntityBuilder(migrationBuilder, ActiveDatabase);
|
|
profileEntityBuilder.DropIndex("IX_Profile");
|
|
|
|
//Drop Index on File table
|
|
var fileEntityBuilder = new FileEntityBuilder(migrationBuilder, ActiveDatabase);
|
|
fileEntityBuilder.DropIndex("IX_File");
|
|
|
|
//Drop Columns from Notification table
|
|
var notificationEntityBuilder = new NotificationEntityBuilder(migrationBuilder, ActiveDatabase);
|
|
notificationEntityBuilder.DropColumn("FromDisplayName");
|
|
notificationEntityBuilder.DropColumn("FromEmail");
|
|
notificationEntityBuilder.DropColumn("ToDisplayName");
|
|
}
|
|
}
|
|
}
|