From 62f4a34df409528456ea156dac922825bbf5229a Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Tue, 31 Oct 2017 18:55:07 -0500 Subject: [PATCH] add Rules ef migration --- .../20171031235408_add Rules.Designer.cs | 303 ++++++++++++++++++ .../Migrations/20171031235408_add Rules.cs | 91 ++++++ .../FilterListsDbContextModelSnapshot.cs | 57 +++- 3 files changed, 450 insertions(+), 1 deletion(-) create mode 100644 src/FilterLists.Api/Migrations/20171031235408_add Rules.Designer.cs create mode 100644 src/FilterLists.Api/Migrations/20171031235408_add Rules.cs diff --git a/src/FilterLists.Api/Migrations/20171031235408_add Rules.Designer.cs b/src/FilterLists.Api/Migrations/20171031235408_add Rules.Designer.cs new file mode 100644 index 000000000..c7d9e7443 --- /dev/null +++ b/src/FilterLists.Api/Migrations/20171031235408_add Rules.Designer.cs @@ -0,0 +1,303 @@ +// +using FilterLists.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage; +using Microsoft.EntityFrameworkCore.Storage.Internal; +using System; + +namespace FilterLists.Api.Migrations +{ + [DbContext(typeof(FilterListsDbContext))] + [Migration("20171031235408_add Rules")] + partial class addRules + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn) + .HasAnnotation("ProductVersion", "2.0.0-rtm-26452"); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterList", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("Description") + .HasMaxLength(4096); + + b.Property("DescriptionSourceUrl") + .HasMaxLength(2083); + + b.Property("DonateUrl") + .HasMaxLength(2083); + + b.Property("EmailAddress") + .HasMaxLength(126); + + b.Property("ForumUrl") + .HasMaxLength(2083); + + b.Property("HomeUrl") + .HasMaxLength(2083); + + b.Property("IssuesUrl") + .HasMaxLength(2083); + + b.Property("MaintainerId"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(126); + + b.Property("ViewUrl") + .HasMaxLength(2083); + + b.HasKey("Id"); + + b.HasIndex("MaintainerId"); + + b.ToTable("filterlists"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListLanguage", b => + { + b.Property("FilterListId"); + + b.Property("LanguageId"); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.HasKey("FilterListId", "LanguageId"); + + b.HasIndex("LanguageId"); + + b.ToTable("filterlists_languages"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListRule", b => + { + b.Property("FilterListId"); + + b.Property("RuleId"); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.HasKey("FilterListId", "RuleId"); + + b.HasIndex("RuleId"); + + b.ToTable("filterlists_rules"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListSoftware", b => + { + b.Property("FilterListId"); + + b.Property("SoftwareId"); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.HasKey("FilterListId", "SoftwareId"); + + b.HasIndex("SoftwareId"); + + b.ToTable("filterlists_software"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.Language", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("Iso6391") + .HasMaxLength(2); + + b.Property("Iso6392") + .HasMaxLength(3); + + b.Property("Iso6392B") + .HasMaxLength(3); + + b.Property("Iso6392T") + .HasMaxLength(3); + + b.Property("Iso6393") + .HasMaxLength(3); + + b.Property("LocalName") + .HasMaxLength(126); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .HasMaxLength(126); + + b.HasKey("Id"); + + b.ToTable("languages"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.Maintainer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("EmailAddress") + .HasMaxLength(126); + + b.Property("HomeUrl") + .HasMaxLength(2083); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(126); + + b.Property("TwitterHandle") + .HasMaxLength(126); + + b.HasKey("Id"); + + b.ToTable("maintainers"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.Rule", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Raw") + .HasMaxLength(2083); + + b.HasKey("Id"); + + b.ToTable("rules"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.Software", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("DownloadUrl") + .HasMaxLength(2083); + + b.Property("HomeUrl") + .HasMaxLength(2083); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .HasMaxLength(126); + + b.HasKey("Id"); + + b.ToTable("software"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterList", b => + { + b.HasOne("FilterLists.Data.Entities.Maintainer") + .WithMany("FilterLists") + .HasForeignKey("MaintainerId"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListLanguage", b => + { + b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList") + .WithMany("FilterListLanguages") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("FilterLists.Data.Entities.Language", "Language") + .WithMany("FilterListLanguages") + .HasForeignKey("LanguageId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListRule", b => + { + b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList") + .WithMany("FilterListRules") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("FilterLists.Data.Entities.Rule", "Rule") + .WithMany("FilterListRules") + .HasForeignKey("RuleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListSoftware", b => + { + b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList") + .WithMany("FilterListSoftware") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("FilterLists.Data.Entities.Software", "Software") + .WithMany("FilterListSoftware") + .HasForeignKey("SoftwareId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/FilterLists.Api/Migrations/20171031235408_add Rules.cs b/src/FilterLists.Api/Migrations/20171031235408_add Rules.cs new file mode 100644 index 000000000..e913ffccc --- /dev/null +++ b/src/FilterLists.Api/Migrations/20171031235408_add Rules.cs @@ -0,0 +1,91 @@ +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using System; +using System.Collections.Generic; + +namespace FilterLists.Api.Migrations +{ + public partial class addRules : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Email", + table: "maintainers"); + + migrationBuilder.AddColumn( + name: "EmailAddress", + table: "maintainers", + type: "varchar(126)", + maxLength: 126, + nullable: true); + + migrationBuilder.CreateTable( + name: "rules", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false), + Raw = table.Column(type: "varchar(2083)", maxLength: 2083, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_rules", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "filterlists_rules", + columns: table => new + { + FilterListId = table.Column(type: "int", nullable: false), + RuleId = table.Column(type: "int", nullable: false), + CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_filterlists_rules", x => new { x.FilterListId, x.RuleId }); + table.ForeignKey( + name: "FK_filterlists_rules_filterlists_FilterListId", + column: x => x.FilterListId, + principalTable: "filterlists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_filterlists_rules_rules_RuleId", + column: x => x.RuleId, + principalTable: "rules", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_filterlists_rules_RuleId", + table: "filterlists_rules", + column: "RuleId"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "filterlists_rules"); + + migrationBuilder.DropTable( + name: "rules"); + + migrationBuilder.DropColumn( + name: "EmailAddress", + table: "maintainers"); + + migrationBuilder.AddColumn( + name: "Email", + table: "maintainers", + maxLength: 126, + nullable: true); + } + } +} diff --git a/src/FilterLists.Api/Migrations/FilterListsDbContextModelSnapshot.cs b/src/FilterLists.Api/Migrations/FilterListsDbContextModelSnapshot.cs index 39b52340e..47db678d7 100644 --- a/src/FilterLists.Api/Migrations/FilterListsDbContextModelSnapshot.cs +++ b/src/FilterLists.Api/Migrations/FilterListsDbContextModelSnapshot.cs @@ -91,6 +91,27 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("filterlists_languages"); }); + modelBuilder.Entity("FilterLists.Data.Entities.FilterListRule", b => + { + b.Property("FilterListId"); + + b.Property("RuleId"); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.HasKey("FilterListId", "RuleId"); + + b.HasIndex("RuleId"); + + b.ToTable("filterlists_rules"); + }); + modelBuilder.Entity("FilterLists.Data.Entities.FilterListSoftware", b => { b.Property("FilterListId"); @@ -160,7 +181,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) .ValueGeneratedOnAdd() .HasColumnType("TIMESTAMP"); - b.Property("Email") + b.Property("EmailAddress") .HasMaxLength(126); b.Property("HomeUrl") @@ -182,6 +203,27 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("maintainers"); }); + modelBuilder.Entity("FilterLists.Data.Entities.Rule", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Raw") + .HasMaxLength(2083); + + b.HasKey("Id"); + + b.ToTable("rules"); + }); + modelBuilder.Entity("FilterLists.Data.Entities.Software", b => { b.Property("Id") @@ -229,6 +271,19 @@ protected override void BuildModel(ModelBuilder modelBuilder) .OnDelete(DeleteBehavior.Cascade); }); + modelBuilder.Entity("FilterLists.Data.Entities.FilterListRule", b => + { + b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList") + .WithMany("FilterListRules") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("FilterLists.Data.Entities.Rule", "Rule") + .WithMany("FilterListRules") + .HasForeignKey("RuleId") + .OnDelete(DeleteBehavior.Cascade); + }); + modelBuilder.Entity("FilterLists.Data.Entities.FilterListSoftware", b => { b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList")