diff --git a/src/Tgstation.Server.Host/Configuration/DatabaseConfiguration.cs b/src/Tgstation.Server.Host/Configuration/DatabaseConfiguration.cs
index e076bc03cb..d5adce7577 100644
--- a/src/Tgstation.Server.Host/Configuration/DatabaseConfiguration.cs
+++ b/src/Tgstation.Server.Host/Configuration/DatabaseConfiguration.cs
@@ -34,11 +34,6 @@ namespace Tgstation.Server.Host.Configuration
///
public bool DropDatabase { get; set; }
- ///
- /// Used to indicate that the database is being loaded to generate migrations. Should not be used in production!.
- ///
- public bool DesignTime { get; set; }
-
///
/// The form of the of the target server.
///
diff --git a/src/Tgstation.Server.Host/Database/Design/DesignTimeDbContextFactoryHelpers.cs b/src/Tgstation.Server.Host/Database/Design/DesignTimeDbContextFactoryHelpers.cs
index a0569aafe3..54d79bddc3 100644
--- a/src/Tgstation.Server.Host/Database/Design/DesignTimeDbContextFactoryHelpers.cs
+++ b/src/Tgstation.Server.Host/Database/Design/DesignTimeDbContextFactoryHelpers.cs
@@ -26,7 +26,6 @@ namespace Tgstation.Server.Host.Database.Design
{
var dbConfig = new DatabaseConfiguration
{
- DesignTime = true,
DatabaseType = databaseType,
ConnectionString = connectionString,
ServerVersion = serverVersion,
diff --git a/src/Tgstation.Server.Host/Database/Design/SqliteDesignTimeDbContextFactory.cs b/src/Tgstation.Server.Host/Database/Design/SqliteDesignTimeDbContextFactory.cs
index b855f8ad9c..924d8934f9 100644
--- a/src/Tgstation.Server.Host/Database/Design/SqliteDesignTimeDbContextFactory.cs
+++ b/src/Tgstation.Server.Host/Database/Design/SqliteDesignTimeDbContextFactory.cs
@@ -12,11 +12,11 @@ namespace Tgstation.Server.Host.Database.Design
///
public SqliteDatabaseContext CreateDbContext(string[] args)
{
- SqliteDatabaseContext.DesignTime = true;
return new SqliteDatabaseContext(
DesignTimeDbContextFactoryHelpers.CreateDatabaseContextOptions(
DatabaseType.Sqlite,
- "Data Source=tgs_design.sqlite3;Mode=ReadWriteCreate"));
+ "Data Source=tgs_design.sqlite3;Mode=ReadWriteCreate"),
+ true);
}
}
}
diff --git a/src/Tgstation.Server.Host/Database/SqliteDatabaseContext.cs b/src/Tgstation.Server.Host/Database/SqliteDatabaseContext.cs
index 0076efe2c2..c13ebf2027 100644
--- a/src/Tgstation.Server.Host/Database/SqliteDatabaseContext.cs
+++ b/src/Tgstation.Server.Host/Database/SqliteDatabaseContext.cs
@@ -14,16 +14,21 @@ namespace Tgstation.Server.Host.Database
sealed class SqliteDatabaseContext : DatabaseContext
{
///
- /// Static property to receive the configured value of .
+ /// If the database context is running in design time mode.
///
- public static bool DesignTime { get; set; }
+ readonly bool designTime;
///
/// Initializes a new instance of the class.
///
/// The for the .
- public SqliteDatabaseContext(DbContextOptions dbContextOptions) : base(dbContextOptions)
+ /// The value of .
+ public SqliteDatabaseContext(
+ DbContextOptions dbContextOptions,
+ bool designTime = false)
+ : base(dbContextOptions)
{
+ this.designTime = designTime;
}
///
@@ -31,7 +36,9 @@ namespace Tgstation.Server.Host.Database
///
/// The to configure.
/// The .
- public static void ConfigureWith(DbContextOptionsBuilder options, DatabaseConfiguration databaseConfiguration)
+ public static void ConfigureWith(
+ DbContextOptionsBuilder options,
+ DatabaseConfiguration databaseConfiguration)
{
ArgumentNullException.ThrowIfNull(options);
ArgumentNullException.ThrowIfNull(databaseConfiguration);
@@ -39,7 +46,6 @@ namespace Tgstation.Server.Host.Database
if (databaseConfiguration.DatabaseType != DatabaseType.Sqlite)
throw new InvalidOperationException($"Invalid DatabaseType for {nameof(SqliteDatabaseContext)}!");
- DesignTime = databaseConfiguration.DesignTime;
options.UseSqlite(databaseConfiguration.ConnectionString, sqliteOptions => sqliteOptions.UseQuerySplittingBehavior(QuerySplittingBehavior.SingleQuery));
}
@@ -56,7 +62,7 @@ namespace Tgstation.Server.Host.Database
// use the DateTimeOffsetToBinaryConverter
// Based on: https://github.com/aspnet/EntityFrameworkCore/issues/10784#issuecomment-415769754
// This only supports millisecond precision, but should be sufficient for most use cases.
- if (!DesignTime)
+ if (!designTime)
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
var properties = entityType