2017-06-05 2 views
0

バージョン:DjangoのDateTimeField型は、PostgreSQLにナイーブと認識してタイムスタンプフィールドと散らかった

ジャンゴ1.11

のPostgreSQL 9.6(AWS RDS)

Djangoのsettings.py:

TIME_ZONE =「アジア/ Seoul '

USE_TZ = False

私の問題:

昨年私のdjangoアプリは、データベースをMySQLからPostgreSQLに移行しました。それは大丈夫だった。しかし、私は大きな問題を見つけました。

MySQLで生成されたテーブルのDateTimeFieldは、PostgreSQLのタイムゾーンなしのナイーブタイムスタンプフィールドに相当します。しかし、PostgreSQLで生成されたテーブルはDateTimeFieldを持っています。これは認識タイムスタンプフィールド(タイムゾーン付き)に対応しています。タイムスタンプはすべてUTCで保存されます。

したがって、My DBテーブルは、ナイーブかつ認識可能なタイムスタンプフィールドで乱雑でした。

どうすればこの問題を解決できますか?

以下は、私が考えるソリューション、

  1. が意識タイムスタンプフィールドにナイーブタイムスタンプフィールドを変換します。 ベストプラクティスだと思います。しかし、素朴なタイムスタンプフィールドはあまりにも多くあります。私は変換のためにデータが失われてしまうのではないかと心配しています。

  2. 認識タイムスタンプフィールドをナイーブタイムスタンプフィールドに変換します。 私はそれが簡単な方法の一つだと思います。しかし、素朴なタイムスタンプフィールドは実践的ではないと聞きました。

  3. 何も変更されていません。実際に、私はDBを調べるまで、タイムスタンプフィールドが乱雑であるかどうかはわかりませんでした。 Djanoアプリケーションがうまくいきました。しかし、私は心配しています。

  4. AWS RDSのタイムゾーン設定を変更します。それは可能なのでしょうか?

私の貧しい私の英語のために申し訳ありません。ご意見をお聞かせください。

答えて

0

ナイーブタイムスタンプフィールドを認識タイムスタンプフィールドに変換します。私はそれがベストプラクティスだと思う。しかし、素朴なタイムスタンプフィールドはあまりにも多くあります。私は変換のためにデータが失われてしまうのではないかと心配しています。

正しいですが、最良の結果はすべての未知の値をタイムゾーン対応の値にすることです。おそらく、あなたがこれをやり遂げるのを妨げる問題について新しい質問をしたいのですか?

+0

ありがとうございました。すべてのタイムスタンプフィールドをナイーブからアイドルに変換することにしました。 – user3586239

関連する問題