タイムゾーンのサポートが有効になっている Django 1.4.3 プロジェクト用に、South 0.7.6 でスキーマの移行を作成しています。
スキーマの移行には、1 つのテーブルにDateTimeField
(with ) を追加することが含まれます。auto_now=True
移行を作成するとき、South から次のように求められます。
The field 'MyTable.my_field' does not have a default specified, yet is NOT NULL.
Since you are adding this field, you MUST specify a default
value to use for existing rows. Would you like to:
1. Quit now, and add a default to the field in models.py
2. Specify a one-off value to use for existing columns now
既存の行のこの値を気にしない場合 (警告なしで移行を成功させたいだけです)、ここで指定する正しい 1 回限りの値は何ですか?
これまでは、 を使用していdatetime.datetime.utcnow()
ました。ただし、移行を適用すると、次のようになります。
C:\Python27\lib\site-packages\django\db\models\fields\__init__.py:808:
RuntimeWarning: DateTimeField received a naive datetime (2013-01-16 00:00:00)
while time zone support is active.
South は pytz や Django ヘルパー クラスをインポートしていないようですが、ここでタイムゾーン対応のデフォルト値を指定するにはどうすればよいですか?