我所做的只是向模型中添加了一个字段,现在我得到了一个错误消息,指出该列不存在。
在尝试重建数据库时,我使用了-flush (我不关心丢失数据),认为这将重建数据库,但我仍然得到相同的错误。
其他人告诉我使用South,因为我运行的是Django 1.6。
我按照教程操作,在我第一次运行syncdb时,我得到了以下(可能是无关的)错误:
dist-packages/easy-thumbnails/
raise Improperly_Configured(SOUTH_ERROR_MESSAGE)
django.core.exceptions.ImproperlyConfigured:
For South Support, customize the SOUTH_MIGRATION_MODULES setting like so:
South_Migration_Module = {
'easy_thumbnails': 'easy_thumbnails.south_migrations',
}最终,我想做的就是让我的数据库反映我的模型。当我在我的开发环境中处理这个项目时,我会直接将sqlite文件拖到垃圾桶中,然后运行syncdb,但现在我不能这样做,因为我使用的是postgres。
所以我的问题是,我如何才能完成这个看似简单的任务?无论这是否意味着解决South错误,或者只是不完全使用South (我更喜欢),我都将不胜感激。
发布于 2015-02-14 11:29:23
您可以手动打开一个db外壳(>>> python manage.py dbshell)并使用DROP TABLE <table_name>;删除该表。为了让syncdb使用新字段重新创建表,清空该表是不够的。
要解决这个错误,只需完全按照它说的做:将SOUTH_MIGRATION_MODULES设置添加到您的设置中。
话虽如此,我还是建议你使用south。它简化了对模型的更改,并允许您在开发环境中保留测试数据,否则必须重新创建测试数据。这一切都很好,但当您的项目上线时,在对模型进行更改时绝对必须保留您的数据。South是最好的工具。
South是几乎所有Django项目中不可或缺的一部分,Django与South的开发人员合作,从Django 1.7开始将其作为核心功能。
https://stackoverflow.com/questions/28512058
复制相似问题