diff --git a/src/NuGet.config b/src/NuGet.config
index 111d40b89..05dc7873f 100644
--- a/src/NuGet.config
+++ b/src/NuGet.config
@@ -8,5 +8,6 @@
+
diff --git a/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs b/src/NzbDrone.Core.Test/Datastore/DatabaseFixture.cs
index f6c182660..e5222ca0f 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/061_postgres_update_timestamp_columns_to_with_timezone.cs b/src/NzbDrone.Core/Datastore/Migration/061_postgres_update_timestamp_columns_to_with_timezone.cs
new file mode 100644
index 000000000..642cdfc02
--- /dev/null
+++ b/src/NzbDrone.Core/Datastore/Migration/061_postgres_update_timestamp_columns_to_with_timezone.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using FluentMigrator;
+using NzbDrone.Core.Datastore.Migration.Framework;
+
+namespace NzbDrone.Core.Datastore.Migration
+{
+ [Migration(061)]
+ public class postgres_update_timestamp_columns_to_with_timezone : NzbDroneMigrationBase
+ {
+ protected override void MainDbUpgrade()
+ {
+ Alter.Table("AlbumReleases").AlterColumn("ReleaseDate").AsDateTimeOffset().NotNullable();
+ Alter.Table("Albums").AlterColumn("LastInfoSync").AsDateTimeOffset().Nullable();
+ Alter.Table("Albums").AlterColumn("ReleaseDate").AsDateTimeOffset().Nullable();
+ Alter.Table("Albums").AlterColumn("Added").AsDateTimeOffset().Nullable();
+ Alter.Table("Artists").AlterColumn("LastInfoSync").AsDateTimeOffset().Nullable();
+ Alter.Table("Artists").AlterColumn("Added").AsDateTimeOffset().Nullable();
+ Alter.Table("Blocklist").AlterColumn("Date").AsDateTimeOffset().NotNullable();
+ Alter.Table("Blocklist").AlterColumn("PublishedDate").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("DownloadHistory").AlterColumn("Date").AsDateTimeOffset().NotNullable();
+ Alter.Table("ExtraFiles").AlterColumn("Added").AsDateTimeOffset().NotNullable();
+ Alter.Table("ExtraFiles").AlterColumn("LastUpdated").AsDateTimeOffset().NotNullable();
+ Alter.Table("History").AlterColumn("Date").AsDateTimeOffset().NotNullable();
+ Alter.Table("ImportListStatus").AlterColumn("InitialFailure").AsDateTimeOffset().Nullable();
+ Alter.Table("ImportListStatus").AlterColumn("MostRecentFailure").AsDateTimeOffset().Nullable();
+ Alter.Table("ImportListStatus").AlterColumn("DisabledTill").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("LyricFiles").AlterColumn("LastUpdated").AsDateTimeOffset().NotNullable();
+ Alter.Table("LyricFiles").AlterColumn("Added").AsDateTimeOffset().Nullable();
+ Alter.Table("MetadataFiles").AlterColumn("LastUpdated").AsDateTimeOffset().NotNullable();
+ Alter.Table("MetadataFiles").AlterColumn("Added").AsDateTimeOffset().Nullable();
+ Alter.Table("PendingReleases").AlterColumn("Added").AsDateTimeOffset().NotNullable();
+ Alter.Table("ScheduledTasks").AlterColumn("LastExecution").AsDateTimeOffset().NotNullable();
+ Alter.Table("ScheduledTasks").AlterColumn("LastStartTime").AsDateTimeOffset().Nullable();
+ Alter.Table("TrackFiles").AlterColumn("DateAdded").AsDateTimeOffset().NotNullable();
+ Alter.Table("TrackFiles").AlterColumn("Modified").AsDateTimeOffset().NotNullable();
+ 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/Lidarr.Core.csproj b/src/NzbDrone.Core/Lidarr.Core.csproj
index 5b9b9adb8..203dc1393 100644
--- a/src/NzbDrone.Core/Lidarr.Core.csproj
+++ b/src/NzbDrone.Core/Lidarr.Core.csproj
@@ -9,9 +9,9 @@
-
-
-
+
+
+