我目前正在参与一个项目,我正在使用Django 1.7开发版。我希望使用&#34将我在模型中所做的更改(添加字段,删除模型等)添加到数据库模式中; makemigrations"和"迁移" commands.I添加了一个" age"字段到我的应用程序中的一个模型。
country = models.CharField(max_length=50, blank=True)
address = models.CharField(max_length=100, blank=True)
postal_code = models.IntegerField(max_length=50, blank=True)
city = models.CharField(max_length=50, blank=True)
phone_no = models.CharField(max_length=25, blank=True)
skype_name = models.CharField('Skype Username',max_length=50, blank=True)
age=models.IntegerField(max_length=25,blank=True)
当我使用" makemigrations"命令,输出就像---"没有检测到任何变化"。我想那是" makemigrations"无法弄清楚对架构所做的更改。任何建议我如何才能使其工作?
答案 0 :(得分:5)
如果您是adding initial migrations to an app,则在使用makemigrations
命令时必须包含应用名称。
python manage.py makemigrations your_app_label
答案 1 :(得分:2)
如果您是第一次迁移该应用,则必须使用:
manage.py makemigrations myappname
一旦你这样做,你可以这样做:
manage.py migrate
如果你的应用程序在数据库中,修改了它的模型并且没有更新makemigrations上的更改,你可能还没有迁移它。 将模型更改回原始形式,运行第一个命令(使用应用程序名称)并迁移...它会伪造它。一旦这样做,就可以在模型上放回更改,运行makemigrations并再次迁移,它应该可以正常工作。
答案 2 :(得分:-3)
我有时会遇到同样的问题。 我设法通过以下方式填充数据库中的更改:
rm -rf your_app / migrations / *
python manage.py migrate
如果它不起作用,如果您没有数据,请考虑使用手动删除表。
django 1.7c1对我有用