小编Chr*_*ris的帖子

Django 1.7中的Django迁移可检测模型更改,但不会将其应用于迁移

我一直在尝试使用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)

django django-migrations

2
推荐指数
1
解决办法
2216
查看次数

标签 统计

django ×1

django-migrations ×1