1
0
mirror of https://github.com/bitwarden/server.git synced 2024-11-21 12:05:42 +01:00

[SM-412] Remove postgres timezone legacy behavior (#2547)

This commit is contained in:
Oscar Hinton 2023-01-09 11:53:47 +01:00 committed by GitHub
parent 452891b39e
commit b1dfbe7519
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 19 deletions

View File

@ -21,10 +21,10 @@
] ]
}, },
"dotnet-ef": { "dotnet-ef": {
"version": "6.0.11", "version": "6.0.12",
"commands": [ "commands": [
"dotnet-ef" "dotnet-ef"
] ]
} }
} }
} }

View File

@ -157,20 +157,10 @@ public class DatabaseContext : DbContext
{ {
if (property.ClrType == typeof(DateTime) || property.ClrType == typeof(DateTime?)) if (property.ClrType == typeof(DateTime) || property.ClrType == typeof(DateTime?))
{ {
if (Database.IsNpgsql()) property.SetValueConverter(
{ new ValueConverter<DateTime, DateTime>(
property.SetValueConverter( v => v,
new ValueConverter<DateTime, DateTime>( v => new DateTime(v.Ticks, DateTimeKind.Utc)));
v => v,
v => v.ToUniversalTime()));
}
else
{
property.SetValueConverter(
new ValueConverter<DateTime, DateTime>(
v => v,
v => new DateTime(v.Ticks, DateTimeKind.Utc)));
}
} }
} }
} }

View File

@ -25,9 +25,6 @@ public class DatabaseContextFactory : IDesignTimeDbContextFactory<DatabaseContex
var globalSettings = GlobalSettingsFactory.GlobalSettings; var globalSettings = GlobalSettingsFactory.GlobalSettings;
var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>(); var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
var connectionString = globalSettings.PostgreSql?.ConnectionString; var connectionString = globalSettings.PostgreSql?.ConnectionString;
// NpgSql 6.0 changed how timezones works. We have not yet updated our projects to support this new behavior and need to fallback to the previous behavior.
// Check https://www.npgsql.org/doc/release-notes/6.0.html#timestamp-rationalization-and-improvements for more details.
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
if (string.IsNullOrWhiteSpace(connectionString)) if (string.IsNullOrWhiteSpace(connectionString))
{ {
throw new Exception("No Postgres connection string found."); throw new Exception("No Postgres connection string found.");