eFormCore/Migrations/20190806093044_AddingSiteGroups.cs
using System;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
namespace Microting.eForm.Migrations
{
public partial class AddingSiteGroups : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
//Setup for SQL Server Provider
string autoIDGenStrategy = "SqlServer:ValueGenerationStrategy";
object autoIDGenStrategyValue= SqlServerValueGenerationStrategy.IdentityColumn;
// Setup for MySQL Provider
if (migrationBuilder.ActiveProvider=="Pomelo.EntityFrameworkCore.MySql")
{
DbConfig.IsMySQL = true;
autoIDGenStrategy = "MySql:ValueGenerationStrategy";
autoIDGenStrategyValue = MySqlValueGenerationStrategy.IdentityColumn;
}
migrationBuilder.CreateTable(
name: "SiteGroups",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation(autoIDGenStrategy, autoIDGenStrategyValue),
Version = table.Column<int>(nullable: true),
WorkflowState = table.Column<string>(maxLength: 255, nullable: true),
CreatedAt = table.Column<DateTime>(nullable: true),
UpdatedAt = table.Column<DateTime>(nullable: true),
Name = table.Column<string>(nullable: true),
ParentId = table.Column<int>(nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_SiteGroups", x => x.Id);
table.ForeignKey(
name: "FK_SiteGroups_SiteGroups_ParentId",
column: x => x.ParentId,
principalTable: "SiteGroups",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable(
name: "SiteGroupSiteVersions",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation(autoIDGenStrategy, autoIDGenStrategyValue),
Version = table.Column<int>(nullable: true),
WorkflowState = table.Column<string>(maxLength: 255, nullable: true),
CreatedAt = table.Column<DateTime>(nullable: true),
UpdatedAt = table.Column<DateTime>(nullable: true),
SiteGroupId = table.Column<int>(nullable: false),
SiteId = table.Column<int>(nullable: false),
SiteGroupSiteId = table.Column<int>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_SiteGroupSiteVersions", x => x.Id);
});
migrationBuilder.CreateTable(
name: "SiteGroupVersions",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation(autoIDGenStrategy, autoIDGenStrategyValue),
Version = table.Column<int>(nullable: true),
WorkflowState = table.Column<string>(maxLength: 255, nullable: true),
CreatedAt = table.Column<DateTime>(nullable: true),
UpdatedAt = table.Column<DateTime>(nullable: true),
Name = table.Column<string>(nullable: true),
ParentId = table.Column<int>(nullable: false),
SiteGroupId = table.Column<int>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_SiteGroupVersions", x => x.Id);
});
migrationBuilder.CreateTable(
name: "SiteGroupSites",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation(autoIDGenStrategy, autoIDGenStrategyValue),
Version = table.Column<int>(nullable: true),
WorkflowState = table.Column<string>(maxLength: 255, nullable: true),
CreatedAt = table.Column<DateTime>(nullable: true),
UpdatedAt = table.Column<DateTime>(nullable: true),
SiteGroupId = table.Column<int>(nullable: false),
SiteId = table.Column<int>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_SiteGroupSites", x => x.Id);
table.ForeignKey(
name: "FK_SiteGroupSites_SiteGroups_SiteGroupId",
column: x => x.SiteGroupId,
principalTable: "SiteGroups",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_SiteGroupSites_sites_SiteId",
column: x => x.SiteId,
principalTable: "sites",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_SiteGroups_ParentId",
table: "SiteGroups",
column: "ParentId");
migrationBuilder.CreateIndex(
name: "IX_SiteGroupSites_SiteGroupId",
table: "SiteGroupSites",
column: "SiteGroupId");
migrationBuilder.CreateIndex(
name: "IX_SiteGroupSites_SiteId",
table: "SiteGroupSites",
column: "SiteId");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "SiteGroupSites");
migrationBuilder.DropTable(
name: "SiteGroupSiteVersions");
migrationBuilder.DropTable(
name: "SiteGroupVersions");
migrationBuilder.DropTable(
name: "SiteGroups");
}
}
}