モデルの2つのフィールドを編集し、それらをIntegerField
sからsに変更しましたTimeField
。
class Model(models.Model):
start_time = models.TimeField()
end_time = models.TimeField()
私はこれらの2つのフィールドを使用して、時間の地理的概念とは関係がないため、実際の「タイムゾーン」(レース時間に似たものを考えてください)を持たない素朴な時間を節約しています。私のローカルデータベースはPostgreSQLです。
ただし、この変更から生成された南への移行は、次のエラーで失敗します。
> main:0005_auto__chg_field_model_start_time__chg_field_model_end_time
FATAL ERROR - The following SQL query failed: ALTER TABLE "main_model" ALTER COLUMN "start_time" TYPE time, ALTER COLUMN "start_time" SET NOT NULL, ALTER COLUMN "start_time" DROP DEFAULT;
...
File ".../lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 52, in execute
return self.cursor.execute(query, args)
django.db.utils.DatabaseError: column "start_time" cannot be cast to type time without time zone
失敗した移行には次のようなものがあります。
class Migration(SchemaMigration):
def forwards(self, orm):
# Changing field 'Model.start_time'
db.alter_column('main_model', 'start_time', self.gf('django.db.models.fields.TimeField')())
# Changing field 'Model.end_time'
db.alter_column('main_model', 'end_time', self.gf('django.db.models.fields.TimeField')())
この移行についてpostgresを幸せにする方法について何かアイデアはありますか?
PS私は開発中なので、データの移行についてはまったく気にしません。DBが空であると想定することができます。