当存在现有表时,我对Django的迁移功能有疑问。
ContentData
ContentType
Faq
UserLog
TB_TEAM_INF
当我尝试执行“./manage.py migrate”以便它可以从models.py创建上面的5个表时,我收到一条错误消息,因为有一个现有的表TB_TEAM_INF。
由于TB_TEAM_INF是另一个团队正在使用的表,因此我无法删除该表。由于项目的限制,我不能使用分离的数据库。在这种情况下,我打开迁移文件,如0001_initial.py,并在迁移过程中临时手动删除模型对象TB_TEAM_INF。
有没有更好的方法在“./manage.py migrate”时忽略现有表而不是手动编辑迁移文件?
我尝试使用./manage.py迁移--exclude = TB_TEAM_INF或--ignore = TB_TEAM_INF选项,但似乎不接受这些选项。我正在使用Django 1.7.2。
答案 0 :(得分:10)
将managed
选项添加到模型定义中:
class TB_TEAM_INF(models.Model):
...
class Meta:
managed = False
摘自文件:
如果为False,则不会对此模型执行数据库表创建或删除操作。