0

私はこのモデルを持っています

class Category(models.Model):
category_name= models.CharField(max_length=255)
sub_category_ID = models.IntegerField(null=True, blank=True)
def __unicode__(self):
    return self.category_name

sub_category_IDテーブルにすでにデータがありますが、データベース全体を削除せずにに変更したいと思います。

class Category(models.Model):
category_name= models.CharField(max_length=255)
sub_category_ID = models.ForeignKey('self',null=True, blank=True)
def __unicode__(self):
    return self.category_name

そのため、モデルを変更した後にsyncdbを実行すると、警告が表示されました。

The following content types are stale and need to be deleted:
uTriga | event_event_category
Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.`

「はい」と入力しましたが、エラーが発生します

column app_category.sub_category_ID_id does not exist

列uTriga_category.sub_category_ID_idが存在しません

4

1 に答える 1

0

デフォルトでは、Django syncdb メカニズムはモデルの変更を許可しません。データベース全体を削除して再作成する必要があります。2 つの syncb 実行の間に追加できるのは、新しいモデルのみです。

したがって、DB スキーマの漸進的な進化を可能にする「移行」ツールを使用することをお勧めします。これは、ほとんどの場合、1 つの IMHO を使用することをお勧めします。

Southは Django で最も有名で、これまでのところかなり満足しています。

于 2012-08-21T09:50:03.783 に答える