diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 133bdf4fe..859ba9fd3 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -565,6 +565,7 @@ stages:
-e POSTGRES_PASSWORD=prowlarr \
-e POSTGRES_USER=prowlarr \
-p 5432:5432/tcp \
+ -v /usr/share/zoneinfo/America/Chicago:/etc/localtime:ro \
postgres:14
displayName: Start postgres
- bash: |
@@ -710,6 +711,7 @@ stages:
-e POSTGRES_PASSWORD=prowlarr \
-e POSTGRES_USER=prowlarr \
-p 5432:5432/tcp \
+ -v /usr/share/zoneinfo/America/Chicago:/etc/localtime:ro \
postgres:14
displayName: Start postgres
- bash: |
diff --git a/src/NuGet.config b/src/NuGet.config
index 19fea7384..fcbd8bafb 100644
--- a/src/NuGet.config
+++ b/src/NuGet.config
@@ -7,5 +7,6 @@
+
diff --git a/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs b/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs
index 985fbb7d5..7f8a157b0 100644
--- a/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs
+++ b/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs
@@ -27,6 +27,20 @@ namespace NzbDrone.Core.Test.Datastore
Mocker.Resolve().Vacuum();
}
+ [Test]
+ public void postgres_should_not_contain_timestamp_without_timezone_columns()
+ {
+ if (Db.DatabaseType != DatabaseType.PostgreSQL)
+ {
+ return;
+ }
+
+ Mocker.Resolve()
+ .OpenConnection().Query("SELECT table_name, column_name, data_type FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = 'public' AND data_type = 'timestamp without time zone'")
+ .Should()
+ .BeNullOrEmpty();
+ }
+
[Test]
public void get_version()
{
diff --git a/src/NzbDrone.Core/Datastore/Migration/036_postgres_update_timestamp_columns_to_with_timezone.cs b/src/NzbDrone.Core/Datastore/Migration/036_postgres_update_timestamp_columns_to_with_timezone.cs
new file mode 100644
index 000000000..8a2d6fe9a
--- /dev/null
+++ b/src/NzbDrone.Core/Datastore/Migration/036_postgres_update_timestamp_columns_to_with_timezone.cs
@@ -0,0 +1,39 @@
+using FluentMigrator;
+using NzbDrone.Core.Datastore.Migration.Framework;
+
+namespace NzbDrone.Core.Datastore.Migration
+{
+ [Migration(036)]
+ public class postgres_update_timestamp_columns_to_with_timezone : NzbDroneMigrationBase
+ {
+ protected override void MainDbUpgrade()
+ {
+ Alter.Table("ApplicationStatus").AlterColumn("InitialFailure").AsDateTimeOffset().Nullable();
+ Alter.Table("ApplicationStatus").AlterColumn("MostRecentFailure").AsDateTimeOffset().Nullable();
+ Alter.Table("ApplicationStatus").AlterColumn("DisabledTill").AsDateTimeOffset().Nullable();
+ Alter.Table("Commands").AlterColumn("QueuedAt").AsDateTimeOffset().NotNullable();
+ Alter.Table("Commands").AlterColumn("StartedAt").AsDateTimeOffset().Nullable();
+ Alter.Table("Commands").AlterColumn("EndedAt").AsDateTimeOffset().Nullable();
+ Alter.Table("DownloadClientStatus").AlterColumn("InitialFailure").AsDateTimeOffset().Nullable();
+ Alter.Table("DownloadClientStatus").AlterColumn("MostRecentFailure").AsDateTimeOffset().Nullable();
+ Alter.Table("DownloadClientStatus").AlterColumn("DisabledTill").AsDateTimeOffset().Nullable();
+ Alter.Table("History").AlterColumn("Date").AsDateTimeOffset().NotNullable();
+ Alter.Table("IndexerDefinitionVersions").AlterColumn("LastUpdated").AsDateTimeOffset().Nullable();
+ Alter.Table("IndexerStatus").AlterColumn("InitialFailure").AsDateTimeOffset().Nullable();
+ Alter.Table("IndexerStatus").AlterColumn("MostRecentFailure").AsDateTimeOffset().Nullable();
+ Alter.Table("IndexerStatus").AlterColumn("DisabledTill").AsDateTimeOffset().Nullable();
+ Alter.Table("IndexerStatus").AlterColumn("CookiesExpirationDate").AsDateTimeOffset().Nullable();
+ Alter.Table("Indexers").AlterColumn("Added").AsDateTimeOffset().NotNullable();
+ Alter.Table("ScheduledTasks").AlterColumn("LastExecution").AsDateTimeOffset().NotNullable();
+ Alter.Table("ScheduledTasks").AlterColumn("LastStartTime").AsDateTimeOffset().Nullable();
+ Alter.Table("VersionInfo").AlterColumn("AppliedOn").AsDateTimeOffset().Nullable();
+ }
+
+ protected override void LogDbUpgrade()
+ {
+ Alter.Table("Logs").AlterColumn("Time").AsDateTimeOffset().NotNullable();
+ Alter.Table("UpdateHistory").AlterColumn("Date").AsDateTimeOffset().NotNullable();
+ Alter.Table("VersionInfo").AlterColumn("AppliedOn").AsDateTimeOffset().Nullable();
+ }
+ }
+}
diff --git a/src/NzbDrone.Core/Prowlarr.Core.csproj b/src/NzbDrone.Core/Prowlarr.Core.csproj
index 5789e62ff..86b491834 100644
--- a/src/NzbDrone.Core/Prowlarr.Core.csproj
+++ b/src/NzbDrone.Core/Prowlarr.Core.csproj
@@ -5,16 +5,16 @@
-
+
+
+
-
-