diff --git a/src/Tgstation.Server.Host/Database/Migrations/20200422011927_SLAddCompileJobDMApiVersion.Designer.cs b/src/Tgstation.Server.Host/Database/Migrations/20200422011927_SLAddCompileJobDMApiVersion.Designer.cs
deleted file mode 100644
index 6154815471..0000000000
--- a/src/Tgstation.Server.Host/Database/Migrations/20200422011927_SLAddCompileJobDMApiVersion.Designer.cs
+++ /dev/null
@@ -1,671 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Tgstation.Server.Host.Database.Migrations
-{
- [DbContext(typeof(SqliteDatabaseContext))]
- [Migration("20200422011927_SLAddCompileJobDMApiVersion")]
- partial class SLAddCompileJobDMApiVersion
- {
- ///
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "2.2.6-servicing-10079");
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ChatBot", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ConnectionString")
- .IsRequired()
- .HasMaxLength(10000);
-
- b.Property("Enabled");
-
- b.Property("InstanceId");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(100);
-
- b.Property("Provider");
-
- b.Property("ReconnectionInterval")
- .IsRequired();
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId", "Name")
- .IsUnique();
-
- b.ToTable("ChatBots");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ChatChannel", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ChatSettingsId");
-
- b.Property("DiscordChannelId");
-
- b.Property("IrcChannel")
- .HasMaxLength(100);
-
- b.Property("IsAdminChannel")
- .IsRequired();
-
- b.Property("IsUpdatesChannel")
- .IsRequired();
-
- b.Property("IsWatchdogChannel")
- .IsRequired();
-
- b.Property("Tag")
- .HasMaxLength(10000);
-
- b.HasKey("Id");
-
- b.HasIndex("ChatSettingsId", "DiscordChannelId")
- .IsUnique();
-
- b.HasIndex("ChatSettingsId", "IrcChannel")
- .IsUnique();
-
- b.ToTable("ChatChannels");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.CompileJob", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ByondVersion")
- .IsRequired();
-
- b.Property("DMApiMajorVersion");
-
- b.Property("DMApiMinorVersion");
-
- b.Property("DMApiPatchVersion");
-
- b.Property("DirectoryName")
- .IsRequired();
-
- b.Property("DmeName")
- .IsRequired();
-
- b.Property("JobId");
-
- b.Property("MinimumSecurityLevel");
-
- b.Property("Output")
- .IsRequired();
-
- b.Property("RevisionInformationId");
-
- b.HasKey("Id");
-
- b.HasIndex("DirectoryName");
-
- b.HasIndex("JobId")
- .IsUnique();
-
- b.HasIndex("RevisionInformationId");
-
- b.ToTable("CompileJobs");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.DreamDaemonSettings", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("AccessToken");
-
- b.Property("AllowWebClient")
- .IsRequired();
-
- b.Property("AutoStart")
- .IsRequired();
-
- b.Property("InstanceId");
-
- b.Property("PrimaryPort")
- .IsRequired();
-
- b.Property("ProcessId");
-
- b.Property("SecondaryPort")
- .IsRequired();
-
- b.Property("SecurityLevel");
-
- b.Property("SoftRestart")
- .IsRequired();
-
- b.Property("SoftShutdown")
- .IsRequired();
-
- b.Property("StartupTimeout")
- .IsRequired();
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId")
- .IsUnique();
-
- b.ToTable("DreamDaemonSettings");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.DreamMakerSettings", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ApiValidationPort")
- .IsRequired();
-
- b.Property("ApiValidationSecurityLevel");
-
- b.Property("InstanceId");
-
- b.Property("ProjectName")
- .HasMaxLength(10000);
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId")
- .IsUnique();
-
- b.ToTable("DreamMakerSettings");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.Instance", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("AutoUpdateInterval")
- .IsRequired();
-
- b.Property("ConfigurationType");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(10000);
-
- b.Property("Online")
- .IsRequired();
-
- b.Property("Path")
- .IsRequired();
-
- b.HasKey("Id");
-
- b.HasIndex("Path")
- .IsUnique();
-
- b.ToTable("Instances");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.InstanceUser", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("ByondRights");
-
- b.Property("ChatBotRights");
-
- b.Property("ConfigurationRights");
-
- b.Property("DreamDaemonRights");
-
- b.Property("DreamMakerRights");
-
- b.Property("InstanceId");
-
- b.Property("InstanceUserRights");
-
- b.Property("RepositoryRights");
-
- b.Property("UserId")
- .IsRequired();
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId");
-
- b.HasIndex("UserId", "InstanceId")
- .IsUnique();
-
- b.ToTable("InstanceUsers");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.Job", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("CancelRight");
-
- b.Property("CancelRightsType");
-
- b.Property("Cancelled")
- .IsRequired();
-
- b.Property("CancelledById");
-
- b.Property("Description")
- .IsRequired();
-
- b.Property("ExceptionDetails");
-
- b.Property("InstanceId");
-
- b.Property("StartedAt")
- .IsRequired();
-
- b.Property("StartedById")
- .IsRequired();
-
- b.Property("StoppedAt");
-
- b.HasKey("Id");
-
- b.HasIndex("CancelledById");
-
- b.HasIndex("InstanceId");
-
- b.HasIndex("StartedById");
-
- b.ToTable("Jobs");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ReattachInformation", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("AccessIdentifier")
- .IsRequired();
-
- b.Property("ChatChannelsJson")
- .IsRequired();
-
- b.Property("ChatCommandsJson")
- .IsRequired();
-
- b.Property("CompileJobId");
-
- b.Property("IsPrimary");
-
- b.Property("Port");
-
- b.Property("ProcessId");
-
- b.Property("RebootState");
-
- b.HasKey("Id");
-
- b.HasIndex("CompileJobId");
-
- b.ToTable("ReattachInformations");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RepositorySettings", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("AccessToken")
- .HasMaxLength(10000);
-
- b.Property("AccessUser")
- .HasMaxLength(10000);
-
- b.Property("AutoUpdatesKeepTestMerges")
- .IsRequired();
-
- b.Property("AutoUpdatesSynchronize")
- .IsRequired();
-
- b.Property("CommitterEmail")
- .IsRequired()
- .HasMaxLength(10000);
-
- b.Property("CommitterName")
- .IsRequired()
- .HasMaxLength(10000);
-
- b.Property("InstanceId");
-
- b.Property("PostTestMergeComment")
- .IsRequired();
-
- b.Property("PushTestMergeCommits")
- .IsRequired();
-
- b.Property("ShowTestMergeCommitters")
- .IsRequired();
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId")
- .IsUnique();
-
- b.ToTable("RepositorySettings");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RevInfoTestMerge", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("RevisionInformationId");
-
- b.Property("TestMergeId");
-
- b.HasKey("Id");
-
- b.HasIndex("RevisionInformationId");
-
- b.HasIndex("TestMergeId");
-
- b.ToTable("RevInfoTestMerges");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RevisionInformation", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("CommitSha")
- .IsRequired()
- .HasMaxLength(40);
-
- b.Property("InstanceId");
-
- b.Property("OriginCommitSha")
- .IsRequired()
- .HasMaxLength(40);
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId", "CommitSha")
- .IsUnique();
-
- b.ToTable("RevisionInformations");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.TestMerge", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("Author")
- .IsRequired();
-
- b.Property("BodyAtMerge")
- .IsRequired();
-
- b.Property("Comment")
- .HasMaxLength(10000);
-
- b.Property("MergedAt");
-
- b.Property("MergedById")
- .IsRequired();
-
- b.Property("Number");
-
- b.Property("PrimaryRevisionInformationId")
- .IsRequired();
-
- b.Property("PullRequestRevision")
- .IsRequired()
- .HasMaxLength(40);
-
- b.Property("TitleAtMerge")
- .IsRequired();
-
- b.Property("Url")
- .IsRequired();
-
- b.HasKey("Id");
-
- b.HasIndex("MergedById");
-
- b.HasIndex("PrimaryRevisionInformationId")
- .IsUnique();
-
- b.ToTable("TestMerges");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.User", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("AdministrationRights");
-
- b.Property("CanonicalName")
- .IsRequired();
-
- b.Property("CreatedAt")
- .IsRequired();
-
- b.Property("CreatedById");
-
- b.Property("Enabled")
- .IsRequired();
-
- b.Property("InstanceManagerRights");
-
- b.Property("LastPasswordUpdate");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(10000);
-
- b.Property("PasswordHash");
-
- b.Property("SystemIdentifier");
-
- b.HasKey("Id");
-
- b.HasIndex("CanonicalName")
- .IsUnique();
-
- b.HasIndex("CreatedById");
-
- b.HasIndex("SystemIdentifier")
- .IsUnique();
-
- b.ToTable("Users");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.WatchdogReattachInformation", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd();
-
- b.Property("AlphaId");
-
- b.Property("AlphaIsActive");
-
- b.Property("BravoId");
-
- b.Property("InstanceId");
-
- b.HasKey("Id");
-
- b.HasIndex("AlphaId");
-
- b.HasIndex("BravoId");
-
- b.HasIndex("InstanceId")
- .IsUnique();
-
- b.ToTable("WatchdogReattachInformations");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ChatBot", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithMany("ChatSettings")
- .HasForeignKey("InstanceId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ChatChannel", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.ChatBot", "ChatSettings")
- .WithMany("Channels")
- .HasForeignKey("ChatSettingsId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.CompileJob", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Job", "Job")
- .WithOne()
- .HasForeignKey("Tgstation.Server.Host.Models.CompileJob", "JobId")
- .OnDelete(DeleteBehavior.Restrict);
-
- b.HasOne("Tgstation.Server.Host.Models.RevisionInformation", "RevisionInformation")
- .WithMany("CompileJobs")
- .HasForeignKey("RevisionInformationId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.DreamDaemonSettings", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithOne("DreamDaemonSettings")
- .HasForeignKey("Tgstation.Server.Host.Models.DreamDaemonSettings", "InstanceId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.DreamMakerSettings", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithOne("DreamMakerSettings")
- .HasForeignKey("Tgstation.Server.Host.Models.DreamMakerSettings", "InstanceId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.InstanceUser", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithMany("InstanceUsers")
- .HasForeignKey("InstanceId")
- .OnDelete(DeleteBehavior.Cascade);
-
- b.HasOne("Tgstation.Server.Host.Models.User")
- .WithMany("InstanceUsers")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.Job", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.User", "CancelledBy")
- .WithMany()
- .HasForeignKey("CancelledById");
-
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithMany("Jobs")
- .HasForeignKey("InstanceId")
- .OnDelete(DeleteBehavior.Cascade);
-
- b.HasOne("Tgstation.Server.Host.Models.User", "StartedBy")
- .WithMany()
- .HasForeignKey("StartedById")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ReattachInformation", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.CompileJob", "CompileJob")
- .WithMany()
- .HasForeignKey("CompileJobId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RepositorySettings", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithOne("RepositorySettings")
- .HasForeignKey("Tgstation.Server.Host.Models.RepositorySettings", "InstanceId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RevInfoTestMerge", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.RevisionInformation", "RevisionInformation")
- .WithMany("ActiveTestMerges")
- .HasForeignKey("RevisionInformationId")
- .OnDelete(DeleteBehavior.Cascade);
-
- b.HasOne("Tgstation.Server.Host.Models.TestMerge", "TestMerge")
- .WithMany("RevisonInformations")
- .HasForeignKey("TestMergeId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RevisionInformation", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithMany("RevisionInformations")
- .HasForeignKey("InstanceId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.TestMerge", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.User", "MergedBy")
- .WithMany("TestMerges")
- .HasForeignKey("MergedById")
- .OnDelete(DeleteBehavior.Restrict);
-
- b.HasOne("Tgstation.Server.Host.Models.RevisionInformation", "PrimaryRevisionInformation")
- .WithOne("PrimaryTestMerge")
- .HasForeignKey("Tgstation.Server.Host.Models.TestMerge", "PrimaryRevisionInformationId")
- .OnDelete(DeleteBehavior.Restrict);
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.User", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.User", "CreatedBy")
- .WithMany("CreatedUsers")
- .HasForeignKey("CreatedById");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.WatchdogReattachInformation", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.ReattachInformation", "Alpha")
- .WithMany()
- .HasForeignKey("AlphaId");
-
- b.HasOne("Tgstation.Server.Host.Models.ReattachInformation", "Bravo")
- .WithMany()
- .HasForeignKey("BravoId");
-
- b.HasOne("Tgstation.Server.Host.Models.Instance")
- .WithOne("WatchdogReattachInformation")
- .HasForeignKey("Tgstation.Server.Host.Models.WatchdogReattachInformation", "InstanceId")
- .OnDelete(DeleteBehavior.Cascade);
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20200422011927_SLAddCompileJobDMApiVersion.cs b/src/Tgstation.Server.Host/Database/Migrations/20200422011927_SLAddCompileJobDMApiVersion.cs
deleted file mode 100644
index b8c66c4155..0000000000
--- a/src/Tgstation.Server.Host/Database/Migrations/20200422011927_SLAddCompileJobDMApiVersion.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using Microsoft.EntityFrameworkCore.Migrations;
-using System;
-
-namespace Tgstation.Server.Host.Database.Migrations
-{
- ///
- /// Add fields for the property for SQLite.
- ///
- public partial class SLAddCompileJobDMApiVersion : Migration
- {
- ///
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- if (migrationBuilder == null)
- throw new ArgumentNullException(nameof(migrationBuilder));
-
- migrationBuilder.DropColumn(
- name: "ServerCommandsJson",
- table: "ReattachInformations");
-
- migrationBuilder.AddColumn(
- name: "DMApiMajorVersion",
- table: "CompileJobs",
- nullable: true);
-
- migrationBuilder.AddColumn(
- name: "DMApiMinorVersion",
- table: "CompileJobs",
- nullable: true);
-
- migrationBuilder.AddColumn(
- name: "DMApiPatchVersion",
- table: "CompileJobs",
- nullable: true);
- }
-
- ///
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- if (migrationBuilder == null)
- throw new ArgumentNullException(nameof(migrationBuilder));
-
- migrationBuilder.DropColumn(
- name: "DMApiMajorVersion",
- table: "CompileJobs");
-
- migrationBuilder.DropColumn(
- name: "DMApiMinorVersion",
- table: "CompileJobs");
-
- migrationBuilder.DropColumn(
- name: "DMApiPatchVersion",
- table: "CompileJobs");
-
- migrationBuilder.AddColumn(
- name: "ServerCommandsJson",
- table: "ReattachInformations",
- nullable: false,
- defaultValue: "server_commands.json");
- }
- }
-}
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20200423010708_SLAddSqlite.Designer.cs b/src/Tgstation.Server.Host/Database/Migrations/20200423010708_SLAddSqlite.Designer.cs
deleted file mode 100644
index 58a4df3724..0000000000
--- a/src/Tgstation.Server.Host/Database/Migrations/20200423010708_SLAddSqlite.Designer.cs
+++ /dev/null
@@ -1,814 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-namespace Tgstation.Server.Host.Database.Migrations
-{
- [DbContext(typeof(SqliteDatabaseContext))]
- [Migration("20200423010708_SLAddSqlite")]
- partial class SLAddSqlite
- {
- ///
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "3.1.3");
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ChatBot", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("ChannelLimit")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("ConnectionString")
- .IsRequired()
- .HasColumnType("TEXT")
- .HasMaxLength(10000);
-
- b.Property("Enabled")
- .HasColumnType("INTEGER");
-
- b.Property("InstanceId")
- .HasColumnType("INTEGER");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("TEXT")
- .HasMaxLength(100);
-
- b.Property("Provider")
- .HasColumnType("INTEGER");
-
- b.Property("ReconnectionInterval")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId", "Name")
- .IsUnique();
-
- b.ToTable("ChatBots");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ChatChannel", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("ChatSettingsId")
- .HasColumnType("INTEGER");
-
- b.Property("DiscordChannelId")
- .HasColumnType("INTEGER");
-
- b.Property("IrcChannel")
- .HasColumnType("TEXT")
- .HasMaxLength(100);
-
- b.Property("IsAdminChannel")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("IsUpdatesChannel")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("IsWatchdogChannel")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("Tag")
- .HasColumnType("TEXT")
- .HasMaxLength(10000);
-
- b.HasKey("Id");
-
- b.HasIndex("ChatSettingsId", "DiscordChannelId")
- .IsUnique();
-
- b.HasIndex("ChatSettingsId", "IrcChannel")
- .IsUnique();
-
- b.ToTable("ChatChannels");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.CompileJob", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("ByondVersion")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("DirectoryName")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("DmeName")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("JobId")
- .HasColumnType("INTEGER");
-
- b.Property("MinimumSecurityLevel")
- .HasColumnType("INTEGER");
-
- b.Property("Output")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("RevisionInformationId")
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("DirectoryName");
-
- b.HasIndex("JobId")
- .IsUnique();
-
- b.HasIndex("RevisionInformationId");
-
- b.ToTable("CompileJobs");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.DreamDaemonSettings", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("AccessToken")
- .HasColumnType("TEXT");
-
- b.Property("AllowWebClient")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("AutoStart")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("InstanceId")
- .HasColumnType("INTEGER");
-
- b.Property("PrimaryPort")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("ProcessId")
- .HasColumnType("INTEGER");
-
- b.Property("SecondaryPort")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("SecurityLevel")
- .HasColumnType("INTEGER");
-
- b.Property("SoftRestart")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("SoftShutdown")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("StartupTimeout")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId")
- .IsUnique();
-
- b.ToTable("DreamDaemonSettings");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.DreamMakerSettings", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("ApiValidationPort")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("ApiValidationSecurityLevel")
- .HasColumnType("INTEGER");
-
- b.Property("InstanceId")
- .HasColumnType("INTEGER");
-
- b.Property("ProjectName")
- .HasColumnType("TEXT")
- .HasMaxLength(10000);
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId")
- .IsUnique();
-
- b.ToTable("DreamMakerSettings");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.Instance", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("AutoUpdateInterval")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("ChatBotLimit")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("ConfigurationType")
- .HasColumnType("INTEGER");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("TEXT")
- .HasMaxLength(10000);
-
- b.Property("Online")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("Path")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("Path")
- .IsUnique();
-
- b.ToTable("Instances");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.InstanceUser", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("ByondRights")
- .HasColumnType("INTEGER");
-
- b.Property("ChatBotRights")
- .HasColumnType("INTEGER");
-
- b.Property("ConfigurationRights")
- .HasColumnType("INTEGER");
-
- b.Property("DreamDaemonRights")
- .HasColumnType("INTEGER");
-
- b.Property("DreamMakerRights")
- .HasColumnType("INTEGER");
-
- b.Property("InstanceId")
- .HasColumnType("INTEGER");
-
- b.Property("InstanceUserRights")
- .HasColumnType("INTEGER");
-
- b.Property("RepositoryRights")
- .HasColumnType("INTEGER");
-
- b.Property("UserId")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId");
-
- b.HasIndex("UserId", "InstanceId")
- .IsUnique();
-
- b.ToTable("InstanceUsers");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.Job", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("CancelRight")
- .HasColumnType("INTEGER");
-
- b.Property("CancelRightsType")
- .HasColumnType("INTEGER");
-
- b.Property("Cancelled")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("CancelledById")
- .HasColumnType("INTEGER");
-
- b.Property("Description")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("ExceptionDetails")
- .HasColumnType("TEXT");
-
- b.Property("InstanceId")
- .HasColumnType("INTEGER");
-
- b.Property("StartedAt")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("StartedById")
- .HasColumnType("INTEGER");
-
- b.Property("StoppedAt")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("CancelledById");
-
- b.HasIndex("InstanceId");
-
- b.HasIndex("StartedById");
-
- b.ToTable("Jobs");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ReattachInformation", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("AccessIdentifier")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("ChatChannelsJson")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("ChatCommandsJson")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("CompileJobId")
- .HasColumnType("INTEGER");
-
- b.Property("IsPrimary")
- .HasColumnType("INTEGER");
-
- b.Property("Port")
- .HasColumnType("INTEGER");
-
- b.Property("ProcessId")
- .HasColumnType("INTEGER");
-
- b.Property("RebootState")
- .HasColumnType("INTEGER");
-
- b.Property("ServerCommandsJson")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("CompileJobId");
-
- b.ToTable("ReattachInformations");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RepositorySettings", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("AccessToken")
- .HasColumnType("TEXT")
- .HasMaxLength(10000);
-
- b.Property("AccessUser")
- .HasColumnType("TEXT")
- .HasMaxLength(10000);
-
- b.Property("AutoUpdatesKeepTestMerges")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("AutoUpdatesSynchronize")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("CommitterEmail")
- .IsRequired()
- .HasColumnType("TEXT")
- .HasMaxLength(10000);
-
- b.Property("CommitterName")
- .IsRequired()
- .HasColumnType("TEXT")
- .HasMaxLength(10000);
-
- b.Property("InstanceId")
- .HasColumnType("INTEGER");
-
- b.Property("PostTestMergeComment")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("PushTestMergeCommits")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("ShowTestMergeCommitters")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId")
- .IsUnique();
-
- b.ToTable("RepositorySettings");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RevInfoTestMerge", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("RevisionInformationId")
- .HasColumnType("INTEGER");
-
- b.Property("TestMergeId")
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("RevisionInformationId");
-
- b.HasIndex("TestMergeId");
-
- b.ToTable("RevInfoTestMerges");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RevisionInformation", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("CommitSha")
- .IsRequired()
- .HasColumnType("TEXT")
- .HasMaxLength(40);
-
- b.Property("InstanceId")
- .HasColumnType("INTEGER");
-
- b.Property("OriginCommitSha")
- .IsRequired()
- .HasColumnType("TEXT")
- .HasMaxLength(40);
-
- b.HasKey("Id");
-
- b.HasIndex("InstanceId", "CommitSha")
- .IsUnique();
-
- b.ToTable("RevisionInformations");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.TestMerge", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("Author")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("BodyAtMerge")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("Comment")
- .HasColumnType("TEXT")
- .HasMaxLength(10000);
-
- b.Property("MergedAt")
- .HasColumnType("TEXT");
-
- b.Property("MergedById")
- .HasColumnType("INTEGER");
-
- b.Property("Number")
- .HasColumnType("INTEGER");
-
- b.Property("PrimaryRevisionInformationId")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("PullRequestRevision")
- .IsRequired()
- .HasColumnType("TEXT")
- .HasMaxLength(40);
-
- b.Property("TitleAtMerge")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("Url")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("MergedById");
-
- b.HasIndex("PrimaryRevisionInformationId")
- .IsUnique();
-
- b.ToTable("TestMerges");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.User", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("AdministrationRights")
- .HasColumnType("INTEGER");
-
- b.Property("CanonicalName")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("CreatedAt")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("CreatedById")
- .HasColumnType("INTEGER");
-
- b.Property("Enabled")
- .IsRequired()
- .HasColumnType("INTEGER");
-
- b.Property("InstanceManagerRights")
- .HasColumnType("INTEGER");
-
- b.Property("LastPasswordUpdate")
- .HasColumnType("TEXT");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("TEXT")
- .HasMaxLength(10000);
-
- b.Property("PasswordHash")
- .HasColumnType("TEXT");
-
- b.Property("SystemIdentifier")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("CanonicalName")
- .IsUnique();
-
- b.HasIndex("CreatedById");
-
- b.HasIndex("SystemIdentifier")
- .IsUnique();
-
- b.ToTable("Users");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.WatchdogReattachInformation", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("AlphaId")
- .HasColumnType("INTEGER");
-
- b.Property("AlphaIsActive")
- .HasColumnType("INTEGER");
-
- b.Property("BravoId")
- .HasColumnType("INTEGER");
-
- b.Property("InstanceId")
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("AlphaId");
-
- b.HasIndex("BravoId");
-
- b.HasIndex("InstanceId")
- .IsUnique();
-
- b.ToTable("WatchdogReattachInformations");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ChatBot", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithMany("ChatSettings")
- .HasForeignKey("InstanceId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ChatChannel", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.ChatBot", "ChatSettings")
- .WithMany("Channels")
- .HasForeignKey("ChatSettingsId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.CompileJob", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Job", "Job")
- .WithOne()
- .HasForeignKey("Tgstation.Server.Host.Models.CompileJob", "JobId")
- .OnDelete(DeleteBehavior.Restrict)
- .IsRequired();
-
- b.HasOne("Tgstation.Server.Host.Models.RevisionInformation", "RevisionInformation")
- .WithMany("CompileJobs")
- .HasForeignKey("RevisionInformationId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.DreamDaemonSettings", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithOne("DreamDaemonSettings")
- .HasForeignKey("Tgstation.Server.Host.Models.DreamDaemonSettings", "InstanceId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.DreamMakerSettings", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithOne("DreamMakerSettings")
- .HasForeignKey("Tgstation.Server.Host.Models.DreamMakerSettings", "InstanceId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.InstanceUser", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithMany("InstanceUsers")
- .HasForeignKey("InstanceId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.HasOne("Tgstation.Server.Host.Models.User", null)
- .WithMany("InstanceUsers")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.Job", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.User", "CancelledBy")
- .WithMany()
- .HasForeignKey("CancelledById");
-
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithMany("Jobs")
- .HasForeignKey("InstanceId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.HasOne("Tgstation.Server.Host.Models.User", "StartedBy")
- .WithMany()
- .HasForeignKey("StartedById")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.ReattachInformation", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.CompileJob", "CompileJob")
- .WithMany()
- .HasForeignKey("CompileJobId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RepositorySettings", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithOne("RepositorySettings")
- .HasForeignKey("Tgstation.Server.Host.Models.RepositorySettings", "InstanceId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RevInfoTestMerge", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.RevisionInformation", "RevisionInformation")
- .WithMany("ActiveTestMerges")
- .HasForeignKey("RevisionInformationId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.HasOne("Tgstation.Server.Host.Models.TestMerge", "TestMerge")
- .WithMany("RevisonInformations")
- .HasForeignKey("TestMergeId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.RevisionInformation", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.Instance", "Instance")
- .WithMany("RevisionInformations")
- .HasForeignKey("InstanceId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.TestMerge", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.User", "MergedBy")
- .WithMany("TestMerges")
- .HasForeignKey("MergedById")
- .OnDelete(DeleteBehavior.Restrict)
- .IsRequired();
-
- b.HasOne("Tgstation.Server.Host.Models.RevisionInformation", "PrimaryRevisionInformation")
- .WithOne("PrimaryTestMerge")
- .HasForeignKey("Tgstation.Server.Host.Models.TestMerge", "PrimaryRevisionInformationId")
- .OnDelete(DeleteBehavior.Restrict)
- .IsRequired();
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.User", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.User", "CreatedBy")
- .WithMany("CreatedUsers")
- .HasForeignKey("CreatedById");
- });
-
- modelBuilder.Entity("Tgstation.Server.Host.Models.WatchdogReattachInformation", b =>
- {
- b.HasOne("Tgstation.Server.Host.Models.ReattachInformation", "Alpha")
- .WithMany()
- .HasForeignKey("AlphaId");
-
- b.HasOne("Tgstation.Server.Host.Models.ReattachInformation", "Bravo")
- .WithMany()
- .HasForeignKey("BravoId");
-
- b.HasOne("Tgstation.Server.Host.Models.Instance", null)
- .WithOne("WatchdogReattachInformation")
- .HasForeignKey("Tgstation.Server.Host.Models.WatchdogReattachInformation", "InstanceId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/src/Tgstation.Server.Host/Database/Migrations/20200423010708_SLAddSqlite.cs b/src/Tgstation.Server.Host/Database/Migrations/20200423010708_SLAddSqlite.cs
deleted file mode 100644
index b288f9c9d1..0000000000
--- a/src/Tgstation.Server.Host/Database/Migrations/20200423010708_SLAddSqlite.cs
+++ /dev/null
@@ -1,644 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-// No way to solve these
-#pragma warning disable CA1502
-#pragma warning disable CA1506
-
-namespace Tgstation.Server.Host.Database.Migrations
-{
- ///
- /// Initial migration for SQLite.
- ///
- public partial class SLAddSqlite : Migration
- {
- ///
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- if (migrationBuilder == null)
- throw new ArgumentNullException(nameof(migrationBuilder));
-
- migrationBuilder.CreateTable(
- name: "Instances",
- columns: table => new
- {
- Id = table.Column(nullable: false)
- .Annotation("Sqlite:Autoincrement", true),
- Name = table.Column(maxLength: 10000, nullable: false),
- Path = table.Column