Added suuport to inject an IOqtaneDatabase in EntityBuilders to allow each Database to control certain Migration behaviors. Also updated Installer to dynamically build Database Configuration section
This commit is contained in:
@ -1,5 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Oqtane.Interfaces;
|
||||
using Oqtane.Migrations.EntityBuilders;
|
||||
using Oqtane.Migrations.Extensions;
|
||||
using Oqtane.Repository;
|
||||
@ -8,28 +10,32 @@ namespace Oqtane.Migrations
|
||||
{
|
||||
[DbContext(typeof(TenantDBContext))]
|
||||
[Migration("Tenant.01.00.01.00")]
|
||||
public class AddAdditionalIndexesInTenant : Migration
|
||||
public class AddAdditionalIndexesInTenant : MultiDatabaseMigration
|
||||
{
|
||||
public AddAdditionalIndexesInTenant(IEnumerable<IOqtaneDatabase> databases) : base(databases)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
//Create Index on Site
|
||||
var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder);
|
||||
var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
siteEntityBuilder.AddIndex("IX_Site", new [] {"TenantId", "Name"}, true);
|
||||
|
||||
//Create Index on Role table
|
||||
var roleEntityBuilder = new RoleEntityBuilder(migrationBuilder);
|
||||
var roleEntityBuilder = new RoleEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
roleEntityBuilder.AddIndex("IX_Role", new [] {"SiteId", "Name"}, true);
|
||||
|
||||
//Create Index on Profile table
|
||||
var profileEntityBuilder = new ProfileEntityBuilder(migrationBuilder);
|
||||
var profileEntityBuilder = new ProfileEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
profileEntityBuilder.AddIndex("IX_Profile", new [] {"SiteId", "Name"}, true);
|
||||
|
||||
//Create Index on File table
|
||||
var fileEntityBuilder = new FileEntityBuilder(migrationBuilder);
|
||||
var fileEntityBuilder = new FileEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
fileEntityBuilder.AddIndex("IX_File", new [] {"FolderId", "Name"}, true);
|
||||
|
||||
//Add Columns to Notification table
|
||||
var notificationEntityBuilder = new NotificationEntityBuilder(migrationBuilder);
|
||||
var notificationEntityBuilder = new NotificationEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
notificationEntityBuilder.AddStringColumn("FromDisplayName", 50, true);
|
||||
notificationEntityBuilder.AddStringColumn("FromEmail", 256, true);
|
||||
notificationEntityBuilder.AddStringColumn("ToDisplayName", 50, true);
|
||||
@ -38,27 +44,26 @@ namespace Oqtane.Migrations
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
//Drop Index on Site table
|
||||
var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder);
|
||||
var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
siteEntityBuilder.DropIndex("IX_Site");
|
||||
|
||||
//Drop Index on Role table
|
||||
var roleEntityBuilder = new RoleEntityBuilder(migrationBuilder);
|
||||
var roleEntityBuilder = new RoleEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
roleEntityBuilder.DropIndex("IX_Role");
|
||||
|
||||
//Drop Index on Profile table
|
||||
var profileEntityBuilder = new ProfileEntityBuilder(migrationBuilder);
|
||||
var profileEntityBuilder = new ProfileEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
profileEntityBuilder.DropIndex("IX_Profile");
|
||||
|
||||
//Drop Index on File table
|
||||
var fileEntityBuilder = new FileEntityBuilder(migrationBuilder);
|
||||
var fileEntityBuilder = new FileEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
fileEntityBuilder.DropIndex("IX_File");
|
||||
|
||||
//Drop Columns from Notification table
|
||||
var notificationEntityBuilder = new NotificationEntityBuilder(migrationBuilder);
|
||||
var notificationEntityBuilder = new NotificationEntityBuilder(migrationBuilder, ActiveDatabase);
|
||||
notificationEntityBuilder.DropColumn("FromDisplayName");
|
||||
notificationEntityBuilder.DropColumn("FromEmail");
|
||||
notificationEntityBuilder.DropColumn("ToDisplayName");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user