我想将Django 1.7用于新项目。 我已经有了许多记录的数据库。
在许多Django教程中, 它演示了如何从一个全新的项目中使用迁移系统。
就我而言,使用django-admin startapp todo
并将使用名为notesnote
的现有表。
我使用inspectdb来转储notesnote
类并将其写入todo/models.py
class NotesNote(models.Model):
title = models.CharField(max_length=100)
text = models.TextField()
pub_date = models.DateTimeField()
authors = models.CharField(max_length=10)
然后
python manage.py makemigrations todo
生成todo/migrations/0001_initial.py
然后
python manage.py migrate --fake todo
进行假迁移(导致该表已存在)。
然后,如果我想修改表格的字段,请添加“类别”字段
category = models.CharField(max_length=30)
然后通过以下方式生成0002迁移差异:
python manage.py makemigrations todo
但是,当我通过
进行迁移时python manage.py migrate todo
我收到如下错误:
django.db.utils.OperationalError:没有这样的表:todo_notesnote
似乎它在现有表格前面添加了应用程序的名称。 我应该采取哪些步骤为现有表格进行可用的迁移?
答案 0 :(得分:0)
关于integrating Django with a legacy database的文档包含一些针对您的用例的有用建议:特别是您应该在内部 Meta 中添加 db_table ='notesnote'选项你的模特的一类。