1

我想将 Django 1.7 用于一个新项目。我已经有很多记录的数据库。

在许多 Django 教程中,它演示了如何从一个全新的项目中使用迁移系统。

在我的情况下,使用 django-admin startapptodo 并将使用一个名为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

似乎它在现有表的前面添加了应用程序的名称。我应该执行哪些步骤来为现有表进行可用迁移?

4

1 回答 1

0

关于将 Django 与遗留数据库集成的文档包含一些对您的用例有用的建议:特别是您应该在模型的内部Meta类中添加一个db_table = 'notesnote'选项。

于 2014-09-22T13:04:50.773 回答