我一直在尝试使用1.7中的迁移将Django应用中的模型更改同步(postgres 9.1-如果您需要更多有关我的环境的详细信息,请告诉我),但是manage.py migration似乎没有任何作用,并且sqlmigrate不发出任何SQL。
我以为Django 1.7-在进行makemigrations之后运行迁移时“不适用任何迁移”可能适用于我的情况,并且确实在数据库的django_migrations表中找到了一些历史记录。我删除了我要迁移的应用程序的记录。
最近,我放弃了让alter table语句生成/运行并放弃该表的原始版本。尽管manage.py migration声明它正在应用迁移,但数据库没有任何反应。
这是我一直在尝试的步骤:
删除历史记录。
rm -r myapp/migrations
../manage.py dbshell
myapp_db=> delete from django_migrations where app='myapp'
Run Code Online (Sandbox Code Playgroud)
创建一个初始迁移。
cp myapp/models.py.orig myapp/models.py
../manage.py makemigrations myapp
../manage.py migrate
Run Code Online (Sandbox Code Playgroud)
manage.py migration返回以下内容:
....
Running migrations:
Applying myapp.0001_initial... FAKED
Run Code Online (Sandbox Code Playgroud)
然后,我换入新模型并生成新的迁移。
cp myapp/models.py.new myapp/models.py
../manage.py makemigrations myapp
Run Code Online (Sandbox Code Playgroud)
makemigrations的结果位于myapp / migrations / 0002_notificationlog.py中:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('myapp', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='NotificationLog',
fields=[ …Run Code Online (Sandbox Code Playgroud)