Django プロジェクトの 1 つで South を使用して移行しようとするたびに、このエラーを回避するために何をすべきかわかりません。
エラー:
askbot の移行の実行:
- 転送を 0006_auto__del_field_tagplus_tag_ptr__add_field_tagplus_id__add_field_tagpl に移行しています。
askbot:0006_auto__del_field_tagplus_tag_ptr__add_field_tagplus_id__add_field_tagpl
致命的なエラー - 次の SQL クエリが失敗しました: ALTER TABLE "tagplus" ADD COLUMN "id" serial NOT >NULL PRIMARY KEY DEFAULT -1; エラー: テーブル「tagplus」のカラム「id」に複数のデフォルト値が指定されました
移行エラー: >askbot:0006_auto__del_field_tagplus_tag_ptr__add_field_tagplus_id__add_field_tagpl DatabaseError: テーブル「tagplus」の列「id」に複数のデフォルト値が指定されました
移行ファイル 0006 コード (部分):
class Migration(SchemaMigration):
def forwards(self, orm):
# Deleting field 'TagPlus.tag_ptr'
db.delete_column(u'tagplus', u'tag_ptr_id')
# Adding field 'TagPlus.id'
db.add_column(u'tagplus', u'id',
self.gf('django.db.models.fields.AutoField')(default=0, primary_key=True),
keep_default=False)
# Adding field 'TagPlus.name'
db.add_column(u'tagplus', 'name',
self.gf('django.db.models.fields.CharField')(default=0, unique=True, max_length=255),
keep_default=False)
ありがとう!
編集:
エラーは、移行ファイルの作成中にプロンプトが表示されたこの選択に関係していると思います。
? The field 'TagPlus.tag_ptr' does not have a default specified, yet is NOT NULL.
? Since you are removing this field, you MUST specify a default
? value to use for existing rows. Would you like to:
? 1. Quit now.
? 2. Specify a one-off value to use for existing columns now
? 3. Disable the backwards migration by raising an exception; you can edit the migration to fix it later
? Please select a choice:
「1 回限りの値を指定する」を選択し、この値を0