diff --git a/FilterLists.sln.DotSettings b/FilterLists.sln.DotSettings
index 334915d14..97e89efbe 100644
--- a/FilterLists.sln.DotSettings
+++ b/FilterLists.sln.DotSettings
@@ -2,6 +2,8 @@
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml"
xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
+
+ True
True
NEVER
False
diff --git a/src/FilterLists.Api/Migrations/20180208145019_InitialCreate.Designer.cs b/src/FilterLists.Api/Migrations/20180208145019_InitialCreate.Designer.cs
deleted file mode 100644
index 29f03bd7a..000000000
--- a/src/FilterLists.Api/Migrations/20180208145019_InitialCreate.Designer.cs
+++ /dev/null
@@ -1,505 +0,0 @@
-//
-using FilterLists.Data;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage;
-using System;
-
-namespace FilterLists.Api.Migrations
-{
- [DbContext(typeof(FilterListsDbContext))]
- [Migration("20180208145019_InitialCreate")]
- partial class InitialCreate
- {
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn)
- .HasAnnotation("ProductVersion", "2.0.1-rtm-125");
-
- modelBuilder.Entity("FilterLists.Data.Entities.FilterList", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("SMALLINT UNSIGNED");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.Property("Description")
- .HasColumnType("TEXT");
-
- b.Property("DescriptionSourceUrl")
- .HasColumnType("TEXT");
-
- b.Property("DiscontinuedDate");
-
- b.Property("DonateUrl")
- .HasColumnType("TEXT");
-
- b.Property("EmailAddress")
- .ValueGeneratedOnAdd()
- .HasColumnType("VARCHAR(126)")
- .HasDefaultValueSql("NULL");
-
- b.Property("ForumUrl")
- .HasColumnType("TEXT");
-
- b.Property("HomeUrl")
- .HasColumnType("TEXT");
-
- b.Property("IssuesUrl")
- .HasColumnType("TEXT");
-
- b.Property("LicenseId");
-
- b.Property("ModifiedDateUtc")
- .ValueGeneratedOnAddOrUpdate()
- .HasColumnType("TIMESTAMP");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("VARCHAR(126)");
-
- b.Property("PolicyUrl")
- .HasColumnType("TEXT");
-
- b.Property("SubmissionUrl")
- .HasColumnType("TEXT");
-
- b.Property("SyntaxId");
-
- b.Property("ViewUrl")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("LicenseId");
-
- b.HasIndex("SyntaxId");
-
- b.ToTable("filterlists");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Junctions.FilterListLanguage", b =>
- {
- b.Property("FilterListId");
-
- b.Property("LanguageId");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.HasKey("FilterListId", "LanguageId");
-
- b.HasIndex("LanguageId", "FilterListId");
-
- b.ToTable("filterlists_languages");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Junctions.FilterListMaintainer", b =>
- {
- b.Property("FilterListId");
-
- b.Property("MaintainerId");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.HasKey("FilterListId", "MaintainerId");
-
- b.HasIndex("MaintainerId", "FilterListId");
-
- b.ToTable("filterlists_maintainers");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Junctions.Fork", b =>
- {
- b.Property("ForkFilterListId");
-
- b.Property("UpstreamFilterListId");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.HasKey("ForkFilterListId", "UpstreamFilterListId");
-
- b.HasIndex("UpstreamFilterListId", "ForkFilterListId");
-
- b.ToTable("forks");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Junctions.Merge", b =>
- {
- b.Property("MergeFilterListId");
-
- b.Property("UpstreamFilterListId");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.HasKey("MergeFilterListId", "UpstreamFilterListId");
-
- b.HasIndex("UpstreamFilterListId", "MergeFilterListId");
-
- b.ToTable("merges");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Junctions.SnapshotRule", b =>
- {
- b.Property("SnapshotId");
-
- b.Property("RuleId");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.HasKey("SnapshotId", "RuleId");
-
- b.HasIndex("RuleId", "SnapshotId");
-
- b.ToTable("snapshots_rules");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Junctions.SoftwareSyntax", b =>
- {
- b.Property("SyntaxId");
-
- b.Property("SoftwareId");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.HasKey("SyntaxId", "SoftwareId");
-
- b.HasIndex("SoftwareId", "SyntaxId");
-
- b.ToTable("software_syntaxes");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Language", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("SMALLINT UNSIGNED");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.Property("Iso6391")
- .ValueGeneratedOnAdd()
- .HasColumnType("VARCHAR(2)")
- .HasDefaultValueSql("NULL");
-
- b.Property("Iso6392")
- .ValueGeneratedOnAdd()
- .HasColumnType("VARCHAR(3)")
- .HasDefaultValueSql("NULL");
-
- b.Property("Iso6392B")
- .ValueGeneratedOnAdd()
- .HasColumnType("VARCHAR(3)")
- .HasDefaultValueSql("NULL");
-
- b.Property("Iso6392T")
- .ValueGeneratedOnAdd()
- .HasColumnType("VARCHAR(3)")
- .HasDefaultValueSql("NULL");
-
- b.Property("Iso6393")
- .ValueGeneratedOnAdd()
- .HasColumnType("VARCHAR(3)")
- .HasDefaultValueSql("NULL");
-
- b.Property("LocalName")
- .ValueGeneratedOnAdd()
- .HasColumnType("VARCHAR(126)")
- .HasDefaultValueSql("NULL");
-
- b.Property("ModifiedDateUtc")
- .ValueGeneratedOnAddOrUpdate()
- .HasColumnType("TIMESTAMP");
-
- b.Property("Name")
- .ValueGeneratedOnAdd()
- .HasColumnType("VARCHAR(126)")
- .HasDefaultValueSql("NULL");
-
- b.HasKey("Id");
-
- b.ToTable("languages");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.License", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("SMALLINT UNSIGNED");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.Property("DescriptionUrl")
- .HasColumnType("TEXT");
-
- b.Property("ModifiedDateUtc")
- .ValueGeneratedOnAddOrUpdate()
- .HasColumnType("TIMESTAMP");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("VARCHAR(126)");
-
- b.Property("PermissiveAdaptation");
-
- b.Property("PermissiveCommercial");
-
- b.HasKey("Id");
-
- b.ToTable("licenses");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Maintainer", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("SMALLINT UNSIGNED");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.Property("EmailAddress")
- .ValueGeneratedOnAdd()
- .HasColumnType("VARCHAR(126)")
- .HasDefaultValueSql("NULL");
-
- b.Property("HomeUrl")
- .HasColumnType("TEXT");
-
- b.Property("ModifiedDateUtc")
- .ValueGeneratedOnAddOrUpdate()
- .HasColumnType("TIMESTAMP");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("VARCHAR(126)");
-
- b.Property("TwitterHandle")
- .ValueGeneratedOnAdd()
- .HasColumnType("VARCHAR(126)")
- .HasDefaultValueSql("NULL");
-
- b.HasKey("Id");
-
- b.ToTable("maintainers");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Rule", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("BIGINT UNSIGNED");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.Property("Raw")
- .IsRequired()
- .HasColumnType("VARCHAR(8192)");
-
- b.HasKey("Id");
-
- b.ToTable("rules");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Snapshot", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("MEDIUMINT UNSIGNED");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.Property("FilterListId");
-
- b.Property("HttpStatusCode")
- .HasColumnType("SMALLINT UNSIGNED");
-
- b.HasKey("Id");
-
- b.HasIndex("FilterListId");
-
- b.ToTable("snapshots");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Software", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("SMALLINT UNSIGNED");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.Property("DownloadUrl")
- .HasColumnType("TEXT");
-
- b.Property("HomeUrl")
- .HasColumnType("TEXT");
-
- b.Property("ModifiedDateUtc")
- .ValueGeneratedOnAddOrUpdate()
- .HasColumnType("TIMESTAMP");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("VARCHAR(126)");
-
- b.HasKey("Id");
-
- b.ToTable("software");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Syntax", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("SMALLINT UNSIGNED");
-
- b.Property("CreatedDateUtc")
- .ValueGeneratedOnAdd()
- .HasColumnType("TIMESTAMP");
-
- b.Property("DefinitionUrl")
- .HasColumnType("TEXT");
-
- b.Property("ModifiedDateUtc")
- .ValueGeneratedOnAddOrUpdate()
- .HasColumnType("TIMESTAMP");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("VARCHAR(126)");
-
- b.HasKey("Id");
-
- b.ToTable("syntaxes");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.FilterList", b =>
- {
- b.HasOne("FilterLists.Data.Entities.License", "License")
- .WithMany("FilterLists")
- .HasForeignKey("LicenseId");
-
- b.HasOne("FilterLists.Data.Entities.Syntax", "Syntax")
- .WithMany("FilterLists")
- .HasForeignKey("SyntaxId");
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Junctions.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.Junctions.FilterListMaintainer", b =>
- {
- b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList")
- .WithMany("FilterListMaintainers")
- .HasForeignKey("FilterListId")
- .OnDelete(DeleteBehavior.Cascade);
-
- b.HasOne("FilterLists.Data.Entities.Maintainer", "Maintainer")
- .WithMany("FilterListMaintainers")
- .HasForeignKey("MaintainerId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Junctions.Fork", b =>
- {
- b.HasOne("FilterLists.Data.Entities.FilterList", "ForkFilterList")
- .WithMany("ForkFilterLists")
- .HasForeignKey("ForkFilterListId")
- .OnDelete(DeleteBehavior.Cascade);
-
- b.HasOne("FilterLists.Data.Entities.FilterList", "UpstreamFilterList")
- .WithMany("UpstreamForkFilterLists")
- .HasForeignKey("UpstreamFilterListId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Junctions.Merge", b =>
- {
- b.HasOne("FilterLists.Data.Entities.FilterList", "MergeFilterList")
- .WithMany("MergeFilterLists")
- .HasForeignKey("MergeFilterListId")
- .OnDelete(DeleteBehavior.Cascade);
-
- b.HasOne("FilterLists.Data.Entities.FilterList", "UpstreamFilterList")
- .WithMany("UpstreamMergeFilterLists")
- .HasForeignKey("UpstreamFilterListId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Junctions.SnapshotRule", b =>
- {
- b.HasOne("FilterLists.Data.Entities.Rule", "Rule")
- .WithMany("SnapshotRules")
- .HasForeignKey("RuleId")
- .OnDelete(DeleteBehavior.Cascade);
-
- b.HasOne("FilterLists.Data.Entities.Snapshot", "Snapshot")
- .WithMany("SnapshotRules")
- .HasForeignKey("SnapshotId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Junctions.SoftwareSyntax", b =>
- {
- b.HasOne("FilterLists.Data.Entities.Software", "Software")
- .WithMany("SoftwareSyntaxes")
- .HasForeignKey("SoftwareId")
- .OnDelete(DeleteBehavior.Cascade);
-
- b.HasOne("FilterLists.Data.Entities.Syntax", "Syntax")
- .WithMany("SoftwareSyntaxes")
- .HasForeignKey("SyntaxId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("FilterLists.Data.Entities.Snapshot", b =>
- {
- b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList")
- .WithMany("Snapshots")
- .HasForeignKey("FilterListId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/src/FilterLists.Api/Migrations/20180208145019_InitialCreate.cs b/src/FilterLists.Api/Migrations/20180208145019_InitialCreate.cs
deleted file mode 100644
index a1c31af80..000000000
--- a/src/FilterLists.Api/Migrations/20180208145019_InitialCreate.cs
+++ /dev/null
@@ -1,432 +0,0 @@
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Migrations;
-using System;
-using System.Collections.Generic;
-
-namespace FilterLists.Api.Migrations
-{
- public partial class InitialCreate : Migration
- {
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.CreateTable(
- name: "languages",
- columns: table => new
- {
- Id = table.Column(type: "SMALLINT UNSIGNED", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- Iso6391 = table.Column(type: "VARCHAR(2)", nullable: true, defaultValueSql: "NULL"),
- Iso6392 = table.Column(type: "VARCHAR(3)", nullable: true, defaultValueSql: "NULL"),
- Iso6392B = table.Column(type: "VARCHAR(3)", nullable: true, defaultValueSql: "NULL"),
- Iso6392T = table.Column(type: "VARCHAR(3)", nullable: true, defaultValueSql: "NULL"),
- Iso6393 = table.Column(type: "VARCHAR(3)", nullable: true, defaultValueSql: "NULL"),
- LocalName = table.Column(type: "VARCHAR(126)", nullable: true, defaultValueSql: "NULL"),
- ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false),
- Name = table.Column(type: "VARCHAR(126)", nullable: true, defaultValueSql: "NULL")
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_languages", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "licenses",
- columns: table => new
- {
- Id = table.Column(type: "SMALLINT UNSIGNED", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- DescriptionUrl = table.Column(type: "TEXT", nullable: true),
- ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false),
- Name = table.Column(type: "VARCHAR(126)", nullable: false),
- PermissiveAdaptation = table.Column(nullable: false),
- PermissiveCommercial = table.Column(nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_licenses", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "maintainers",
- columns: table => new
- {
- Id = table.Column(type: "SMALLINT UNSIGNED", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- EmailAddress = table.Column(type: "VARCHAR(126)", nullable: true, defaultValueSql: "NULL"),
- HomeUrl = table.Column(type: "TEXT", nullable: true),
- ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false),
- Name = table.Column(type: "VARCHAR(126)", nullable: false),
- TwitterHandle = table.Column(type: "VARCHAR(126)", nullable: true, defaultValueSql: "NULL")
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_maintainers", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "rules",
- columns: table => new
- {
- Id = table.Column(type: "BIGINT UNSIGNED", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- Raw = table.Column(type: "VARCHAR(8192)", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_rules", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "software",
- columns: table => new
- {
- Id = table.Column(type: "SMALLINT UNSIGNED", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- DownloadUrl = table.Column(type: "TEXT", nullable: true),
- HomeUrl = table.Column(type: "TEXT", nullable: true),
- ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false),
- Name = table.Column(type: "VARCHAR(126)", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_software", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "syntaxes",
- columns: table => new
- {
- Id = table.Column(type: "SMALLINT UNSIGNED", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- DefinitionUrl = table.Column(type: "TEXT", nullable: true),
- ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false),
- Name = table.Column(type: "VARCHAR(126)", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_syntaxes", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "filterlists",
- columns: table => new
- {
- Id = table.Column(type: "SMALLINT UNSIGNED", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- Description = table.Column(type: "TEXT", nullable: true),
- DescriptionSourceUrl = table.Column(type: "TEXT", nullable: true),
- DiscontinuedDate = table.Column(nullable: true),
- DonateUrl = table.Column(type: "TEXT", nullable: true),
- EmailAddress = table.Column(type: "VARCHAR(126)", nullable: true, defaultValueSql: "NULL"),
- ForumUrl = table.Column(type: "TEXT", nullable: true),
- HomeUrl = table.Column(type: "TEXT", nullable: true),
- IssuesUrl = table.Column(type: "TEXT", nullable: true),
- LicenseId = table.Column(nullable: true),
- ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false),
- Name = table.Column(type: "VARCHAR(126)", nullable: false),
- PolicyUrl = table.Column(type: "TEXT", nullable: true),
- SubmissionUrl = table.Column(type: "TEXT", nullable: true),
- SyntaxId = table.Column(nullable: true),
- ViewUrl = table.Column(type: "TEXT", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_filterlists", x => x.Id);
- table.ForeignKey(
- name: "FK_filterlists_licenses_LicenseId",
- column: x => x.LicenseId,
- principalTable: "licenses",
- principalColumn: "Id",
- onDelete: ReferentialAction.Restrict);
- table.ForeignKey(
- name: "FK_filterlists_syntaxes_SyntaxId",
- column: x => x.SyntaxId,
- principalTable: "syntaxes",
- principalColumn: "Id",
- onDelete: ReferentialAction.Restrict);
- });
-
- migrationBuilder.CreateTable(
- name: "software_syntaxes",
- columns: table => new
- {
- SyntaxId = table.Column(nullable: false),
- SoftwareId = table.Column(nullable: false),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_software_syntaxes", x => new { x.SyntaxId, x.SoftwareId });
- table.ForeignKey(
- name: "FK_software_syntaxes_software_SoftwareId",
- column: x => x.SoftwareId,
- principalTable: "software",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_software_syntaxes_syntaxes_SyntaxId",
- column: x => x.SyntaxId,
- principalTable: "syntaxes",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "filterlists_languages",
- columns: table => new
- {
- FilterListId = table.Column(nullable: false),
- LanguageId = table.Column(nullable: false),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_filterlists_languages", x => new { x.FilterListId, x.LanguageId });
- table.ForeignKey(
- name: "FK_filterlists_languages_filterlists_FilterListId",
- column: x => x.FilterListId,
- principalTable: "filterlists",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_filterlists_languages_languages_LanguageId",
- column: x => x.LanguageId,
- principalTable: "languages",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "filterlists_maintainers",
- columns: table => new
- {
- FilterListId = table.Column(nullable: false),
- MaintainerId = table.Column(nullable: false),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_filterlists_maintainers", x => new { x.FilterListId, x.MaintainerId });
- table.ForeignKey(
- name: "FK_filterlists_maintainers_filterlists_FilterListId",
- column: x => x.FilterListId,
- principalTable: "filterlists",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_filterlists_maintainers_maintainers_MaintainerId",
- column: x => x.MaintainerId,
- principalTable: "maintainers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "forks",
- columns: table => new
- {
- ForkFilterListId = table.Column(nullable: false),
- UpstreamFilterListId = table.Column(nullable: false),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_forks", x => new { x.ForkFilterListId, x.UpstreamFilterListId });
- table.ForeignKey(
- name: "FK_forks_filterlists_ForkFilterListId",
- column: x => x.ForkFilterListId,
- principalTable: "filterlists",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_forks_filterlists_UpstreamFilterListId",
- column: x => x.UpstreamFilterListId,
- principalTable: "filterlists",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "merges",
- columns: table => new
- {
- MergeFilterListId = table.Column(nullable: false),
- UpstreamFilterListId = table.Column(nullable: false),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_merges", x => new { x.MergeFilterListId, x.UpstreamFilterListId });
- table.ForeignKey(
- name: "FK_merges_filterlists_MergeFilterListId",
- column: x => x.MergeFilterListId,
- principalTable: "filterlists",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_merges_filterlists_UpstreamFilterListId",
- column: x => x.UpstreamFilterListId,
- principalTable: "filterlists",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "snapshots",
- columns: table => new
- {
- Id = table.Column(type: "MEDIUMINT UNSIGNED", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
- FilterListId = table.Column(nullable: false),
- HttpStatusCode = table.Column(type: "SMALLINT UNSIGNED", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_snapshots", x => x.Id);
- table.ForeignKey(
- name: "FK_snapshots_filterlists_FilterListId",
- column: x => x.FilterListId,
- principalTable: "filterlists",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "snapshots_rules",
- columns: table => new
- {
- SnapshotId = table.Column(nullable: false),
- RuleId = table.Column(nullable: false),
- CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false)
- .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_snapshots_rules", x => new { x.SnapshotId, x.RuleId });
- table.ForeignKey(
- name: "FK_snapshots_rules_rules_RuleId",
- column: x => x.RuleId,
- principalTable: "rules",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_snapshots_rules_snapshots_SnapshotId",
- column: x => x.SnapshotId,
- principalTable: "snapshots",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateIndex(
- name: "IX_filterlists_LicenseId",
- table: "filterlists",
- column: "LicenseId");
-
- migrationBuilder.CreateIndex(
- name: "IX_filterlists_SyntaxId",
- table: "filterlists",
- column: "SyntaxId");
-
- migrationBuilder.CreateIndex(
- name: "IX_filterlists_languages_LanguageId_FilterListId",
- table: "filterlists_languages",
- columns: new[] { "LanguageId", "FilterListId" });
-
- migrationBuilder.CreateIndex(
- name: "IX_filterlists_maintainers_MaintainerId_FilterListId",
- table: "filterlists_maintainers",
- columns: new[] { "MaintainerId", "FilterListId" });
-
- migrationBuilder.CreateIndex(
- name: "IX_forks_UpstreamFilterListId_ForkFilterListId",
- table: "forks",
- columns: new[] { "UpstreamFilterListId", "ForkFilterListId" });
-
- migrationBuilder.CreateIndex(
- name: "IX_merges_UpstreamFilterListId_MergeFilterListId",
- table: "merges",
- columns: new[] { "UpstreamFilterListId", "MergeFilterListId" });
-
- migrationBuilder.CreateIndex(
- name: "IX_snapshots_FilterListId",
- table: "snapshots",
- column: "FilterListId");
-
- migrationBuilder.CreateIndex(
- name: "IX_snapshots_rules_RuleId_SnapshotId",
- table: "snapshots_rules",
- columns: new[] { "RuleId", "SnapshotId" });
-
- migrationBuilder.CreateIndex(
- name: "IX_software_syntaxes_SoftwareId_SyntaxId",
- table: "software_syntaxes",
- columns: new[] { "SoftwareId", "SyntaxId" });
- }
-
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(
- name: "filterlists_languages");
-
- migrationBuilder.DropTable(
- name: "filterlists_maintainers");
-
- migrationBuilder.DropTable(
- name: "forks");
-
- migrationBuilder.DropTable(
- name: "merges");
-
- migrationBuilder.DropTable(
- name: "snapshots_rules");
-
- migrationBuilder.DropTable(
- name: "software_syntaxes");
-
- migrationBuilder.DropTable(
- name: "languages");
-
- migrationBuilder.DropTable(
- name: "maintainers");
-
- migrationBuilder.DropTable(
- name: "rules");
-
- migrationBuilder.DropTable(
- name: "snapshots");
-
- migrationBuilder.DropTable(
- name: "software");
-
- migrationBuilder.DropTable(
- name: "filterlists");
-
- migrationBuilder.DropTable(
- name: "licenses");
-
- migrationBuilder.DropTable(
- name: "syntaxes");
- }
- }
-}
diff --git a/src/FilterLists.Api/Migrations/20180208153839_InitialCreate.Designer.cs b/src/FilterLists.Api/Migrations/20180208153839_InitialCreate.Designer.cs
new file mode 100644
index 000000000..3bdf95edf
--- /dev/null
+++ b/src/FilterLists.Api/Migrations/20180208153839_InitialCreate.Designer.cs
@@ -0,0 +1,505 @@
+//
+
+using System;
+using FilterLists.Data;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace FilterLists.Api.Migrations
+{
+ [DbContext(typeof(FilterListsDbContext))]
+ [Migration("20180208153839_InitialCreate")]
+ partial class InitialCreate
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn)
+ .HasAnnotation("ProductVersion", "2.0.1-rtm-125");
+
+ modelBuilder.Entity("FilterLists.Data.Entities.FilterList", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("SMALLINT UNSIGNED");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("Description")
+ .HasColumnType("TEXT");
+
+ b.Property("DescriptionSourceUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("DiscontinuedDate");
+
+ b.Property("DonateUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("EmailAddress")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("VARCHAR(126)")
+ .HasDefaultValueSql("NULL");
+
+ b.Property("ForumUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("HomeUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("IssuesUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("LicenseId");
+
+ b.Property("ModifiedDateUtc")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("VARCHAR(126)");
+
+ b.Property("PolicyUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("SubmissionUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("SyntaxId");
+
+ b.Property("ViewUrl")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("LicenseId");
+
+ b.HasIndex("SyntaxId");
+
+ b.ToTable("filterlists");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Junctions.FilterListLanguage", b =>
+ {
+ b.Property("FilterListId");
+
+ b.Property("LanguageId");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.HasKey("FilterListId", "LanguageId");
+
+ b.HasIndex("LanguageId", "FilterListId");
+
+ b.ToTable("filterlists_languages");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Junctions.FilterListMaintainer", b =>
+ {
+ b.Property("FilterListId");
+
+ b.Property("MaintainerId");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.HasKey("FilterListId", "MaintainerId");
+
+ b.HasIndex("MaintainerId", "FilterListId");
+
+ b.ToTable("filterlists_maintainers");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Junctions.Fork", b =>
+ {
+ b.Property("ForkFilterListId");
+
+ b.Property("UpstreamFilterListId");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.HasKey("ForkFilterListId", "UpstreamFilterListId");
+
+ b.HasIndex("UpstreamFilterListId", "ForkFilterListId");
+
+ b.ToTable("forks");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Junctions.Merge", b =>
+ {
+ b.Property("MergeFilterListId");
+
+ b.Property("UpstreamFilterListId");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.HasKey("MergeFilterListId", "UpstreamFilterListId");
+
+ b.HasIndex("UpstreamFilterListId", "MergeFilterListId");
+
+ b.ToTable("merges");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Junctions.SnapshotRule", b =>
+ {
+ b.Property("SnapshotId");
+
+ b.Property("RuleId");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.HasKey("SnapshotId", "RuleId");
+
+ b.HasIndex("RuleId", "SnapshotId");
+
+ b.ToTable("snapshots_rules");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Junctions.SoftwareSyntax", b =>
+ {
+ b.Property("SyntaxId");
+
+ b.Property("SoftwareId");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.HasKey("SyntaxId", "SoftwareId");
+
+ b.HasIndex("SoftwareId", "SyntaxId");
+
+ b.ToTable("software_syntaxes");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Language", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("SMALLINT UNSIGNED");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("Iso6391")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("VARCHAR(2)")
+ .HasDefaultValueSql("NULL");
+
+ b.Property("Iso6392")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("VARCHAR(3)")
+ .HasDefaultValueSql("NULL");
+
+ b.Property("Iso6392B")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("VARCHAR(3)")
+ .HasDefaultValueSql("NULL");
+
+ b.Property("Iso6392T")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("VARCHAR(3)")
+ .HasDefaultValueSql("NULL");
+
+ b.Property("Iso6393")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("VARCHAR(3)")
+ .HasDefaultValueSql("NULL");
+
+ b.Property("LocalName")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("VARCHAR(126)")
+ .HasDefaultValueSql("NULL");
+
+ b.Property("ModifiedDateUtc")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("Name")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("VARCHAR(126)")
+ .HasDefaultValueSql("NULL");
+
+ b.HasKey("Id");
+
+ b.ToTable("languages");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.License", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TINYINT UNSIGNED");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("DescriptionUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("ModifiedDateUtc")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("VARCHAR(126)");
+
+ b.Property("PermissiveAdaptation");
+
+ b.Property("PermissiveCommercial");
+
+ b.HasKey("Id");
+
+ b.ToTable("licenses");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Maintainer", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("SMALLINT UNSIGNED");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("EmailAddress")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("VARCHAR(126)")
+ .HasDefaultValueSql("NULL");
+
+ b.Property("HomeUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("ModifiedDateUtc")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("VARCHAR(126)");
+
+ b.Property("TwitterHandle")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("VARCHAR(126)")
+ .HasDefaultValueSql("NULL");
+
+ b.HasKey("Id");
+
+ b.ToTable("maintainers");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Rule", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INT UNSIGNED");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("Raw")
+ .IsRequired()
+ .HasColumnType("VARCHAR(8192)");
+
+ b.HasKey("Id");
+
+ b.ToTable("rules");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Snapshot", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("MEDIUMINT UNSIGNED");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("FilterListId");
+
+ b.Property("HttpStatusCode")
+ .HasColumnType("SMALLINT UNSIGNED");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FilterListId");
+
+ b.ToTable("snapshots");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Software", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TINYINT UNSIGNED");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("DownloadUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("HomeUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("ModifiedDateUtc")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("VARCHAR(126)");
+
+ b.HasKey("Id");
+
+ b.ToTable("software");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Syntax", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TINYINT UNSIGNED");
+
+ b.Property("CreatedDateUtc")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("DefinitionUrl")
+ .HasColumnType("TEXT");
+
+ b.Property("ModifiedDateUtc")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("TIMESTAMP");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("VARCHAR(126)");
+
+ b.HasKey("Id");
+
+ b.ToTable("syntaxes");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.FilterList", b =>
+ {
+ b.HasOne("FilterLists.Data.Entities.License", "License")
+ .WithMany("FilterLists")
+ .HasForeignKey("LicenseId");
+
+ b.HasOne("FilterLists.Data.Entities.Syntax", "Syntax")
+ .WithMany("FilterLists")
+ .HasForeignKey("SyntaxId");
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Junctions.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.Junctions.FilterListMaintainer", b =>
+ {
+ b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList")
+ .WithMany("FilterListMaintainers")
+ .HasForeignKey("FilterListId")
+ .OnDelete(DeleteBehavior.Cascade);
+
+ b.HasOne("FilterLists.Data.Entities.Maintainer", "Maintainer")
+ .WithMany("FilterListMaintainers")
+ .HasForeignKey("MaintainerId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Junctions.Fork", b =>
+ {
+ b.HasOne("FilterLists.Data.Entities.FilterList", "ForkFilterList")
+ .WithMany("ForkFilterLists")
+ .HasForeignKey("ForkFilterListId")
+ .OnDelete(DeleteBehavior.Cascade);
+
+ b.HasOne("FilterLists.Data.Entities.FilterList", "UpstreamFilterList")
+ .WithMany("UpstreamForkFilterLists")
+ .HasForeignKey("UpstreamFilterListId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Junctions.Merge", b =>
+ {
+ b.HasOne("FilterLists.Data.Entities.FilterList", "MergeFilterList")
+ .WithMany("MergeFilterLists")
+ .HasForeignKey("MergeFilterListId")
+ .OnDelete(DeleteBehavior.Cascade);
+
+ b.HasOne("FilterLists.Data.Entities.FilterList", "UpstreamFilterList")
+ .WithMany("UpstreamMergeFilterLists")
+ .HasForeignKey("UpstreamFilterListId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Junctions.SnapshotRule", b =>
+ {
+ b.HasOne("FilterLists.Data.Entities.Rule", "Rule")
+ .WithMany("SnapshotRules")
+ .HasForeignKey("RuleId")
+ .OnDelete(DeleteBehavior.Cascade);
+
+ b.HasOne("FilterLists.Data.Entities.Snapshot", "Snapshot")
+ .WithMany("SnapshotRules")
+ .HasForeignKey("SnapshotId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Junctions.SoftwareSyntax", b =>
+ {
+ b.HasOne("FilterLists.Data.Entities.Software", "Software")
+ .WithMany("SoftwareSyntaxes")
+ .HasForeignKey("SoftwareId")
+ .OnDelete(DeleteBehavior.Cascade);
+
+ b.HasOne("FilterLists.Data.Entities.Syntax", "Syntax")
+ .WithMany("SoftwareSyntaxes")
+ .HasForeignKey("SyntaxId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+
+ modelBuilder.Entity("FilterLists.Data.Entities.Snapshot", b =>
+ {
+ b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList")
+ .WithMany("Snapshots")
+ .HasForeignKey("FilterListId")
+ .OnDelete(DeleteBehavior.Cascade);
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/FilterLists.Api/Migrations/20180208153839_InitialCreate.cs b/src/FilterLists.Api/Migrations/20180208153839_InitialCreate.cs
new file mode 100644
index 000000000..c18bb1289
--- /dev/null
+++ b/src/FilterLists.Api/Migrations/20180208153839_InitialCreate.cs
@@ -0,0 +1,435 @@
+using System;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace FilterLists.Api.Migrations
+{
+ public partial class InitialCreate : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ "languages",
+ table => new
+ {
+ Id = table.Column("SMALLINT UNSIGNED", nullable: false)
+ .Annotation("MySql:ValueGenerationStrategy",
+ MySqlValueGenerationStrategy.IdentityColumn),
+ CreatedDateUtc = table.Column("TIMESTAMP", nullable: false)
+ .Annotation("MySql:ValueGenerationStrategy",
+ MySqlValueGenerationStrategy.IdentityColumn),
+ Iso6391 = table.Column("VARCHAR(2)", nullable: true, defaultValueSql: "NULL"),
+ Iso6392 = table.Column("VARCHAR(3)", nullable: true, defaultValueSql: "NULL"),
+ Iso6392B = table.Column("VARCHAR(3)", nullable: true, defaultValueSql: "NULL"),
+ Iso6392T = table.Column("VARCHAR(3)", nullable: true, defaultValueSql: "NULL"),
+ Iso6393 = table.Column("VARCHAR(3)", nullable: true, defaultValueSql: "NULL"),
+ LocalName = table.Column("VARCHAR(126)", nullable: true, defaultValueSql: "NULL"),
+ ModifiedDateUtc = table.Column("TIMESTAMP", nullable: false),
+ Name = table.Column("VARCHAR(126)", nullable: true, defaultValueSql: "NULL")
+ },
+ constraints: table => { table.PrimaryKey("PK_languages", x => x.Id); });
+
+ migrationBuilder.CreateTable(
+ "licenses",
+ table => new
+ {
+ Id = table.Column("TINYINT UNSIGNED", nullable: false)
+ .Annotation("MySql:ValueGenerationStrategy",
+ MySqlValueGenerationStrategy.IdentityColumn),
+ CreatedDateUtc = table.Column("TIMESTAMP", nullable: false)
+ .Annotation("MySql:ValueGenerationStrategy",
+ MySqlValueGenerationStrategy.IdentityColumn),
+ DescriptionUrl = table.Column("TEXT", nullable: true),
+ ModifiedDateUtc = table.Column("TIMESTAMP", nullable: false),
+ Name = table.Column("VARCHAR(126)", nullable: false),
+ PermissiveAdaptation = table.Column(nullable: false),
+ PermissiveCommercial = table.Column(nullable: false)
+ },
+ constraints: table => { table.PrimaryKey("PK_licenses", x => x.Id); });
+
+ migrationBuilder.CreateTable(
+ "maintainers",
+ table => new
+ {
+ Id = table.Column("SMALLINT UNSIGNED", nullable: false)
+ .Annotation("MySql:ValueGenerationStrategy",
+ MySqlValueGenerationStrategy.IdentityColumn),
+ CreatedDateUtc = table.Column("TIMESTAMP", nullable: false)
+ .Annotation("MySql:ValueGenerationStrategy",
+ MySqlValueGenerationStrategy.IdentityColumn),
+ EmailAddress = table.Column("VARCHAR(126)", nullable: true, defaultValueSql: "NULL"),
+ HomeUrl = table.Column("TEXT", nullable: true),
+ ModifiedDateUtc = table.Column("TIMESTAMP", nullable: false),
+ Name = table.Column("VARCHAR(126)", nullable: false),
+ TwitterHandle = table.Column