0

Django のドキュメントには、USE_TZ=True に切り替えるときにすべてのデータを UTC に変換する必要があると記載されています。参照: https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#other-databases

これはかなり簡潔な指摘です。これを「一度に」実行し、開発と本番で同じ変換を簡単に実行できるスクリプト/トリックはありますか?

南部の移行はアプリにバインドされているのに対し、USE_TZ 設定はプロジェクト レベルで行われるため、これは南部で行うべきことではないと思います。また、South がデータからどのようなビューを取得するかはわかりません。おそらく South は Django の ORM を再利用しているため、そのレイヤーを介して何かを行おうとすると混乱を招く結果になり、USE_TZ の設定が既に True に変更されているかどうかにも依存します。実際、これは、ORM を経由する DB のあらゆる操作について言えることです。正しい?

どうもありがとう、

クラース

4

1 に答える 1

1

ドキュメントが「データ」と言うとき、それはフィクスチャについて話しています。簡単に言えば、TZ 対応のデータベースに移動するときに、フィクスチャの日時文字列を更新する必要があります。したがって、フィクスチャを参照するさらに下のセクションには、探している追加情報が含まれています。

とはいえ、これは開発と本番の間で行ったり来たりして変更すべきものではありません。多くの人が (正当な理由で) 開発に SQLite を使用することを好みますが、残念ながら現在は TZ に対応していません。したがって、そのようなサイトを作成する必要がある場合は、開発中に別のデータベースを使用する必要があります。TZ 対応データは注意が必要であり、本番環境に移行して初めてテストする必要はありません。開発中に対処する必要があるため、本番環境で機能することがわかります。

その結果、Django のアドバイスは、気まぐれに切り替える方法ではなく、古い TZ ナイーブ データを TZ 対応データに一度だけ移行することに重点を置いています。

于 2012-06-12T14:50:45.700 に答える