Django 1.7 makemigrations 没有效果
Posted
技术标签:
【中文标题】Django 1.7 makemigrations 没有效果【英文标题】:Django 1.7 makemigrations not having an effect 【发布时间】:2015-01-18 20:20:26 【问题描述】:我一直在我的 heroku 服务器上运行 python manage.py makemigrations
,但无论我运行多少次,我都会得到:
$heroku run python manage.py makemigrations
Running `python manage.py makemigrations` attached to terminal... up, run.2680
Migrations for 'default':
0002_auto_20141120_2007.py:
- Alter field user on usersocialauth
如果我运行heroku run python manage.py migrate
它回来了:
Running `python manage.py migrate` attached to terminal... up, run.1285
Operations to perform:
Synchronize unmigrated apps: baflist_core, rest_framework, localflavor, storages
Apply all migrations: admin, userAccount, contenttypes, sessions, default, location, messaging, forum, auth, posts
Synchronizing apps without migrations:
Creating tables...
Installing custom SQL...
Installing indexes...
Running migrations:
No migrations to apply.
Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
诚然,我对 postgres 和迁移的了解只够危险,所以我想我会在这里问。有没有人遇到过这种情况?
【问题讨论】:
您不应该在服务器上运行 makemigrations。本地运行,将创建的迁移文件添加到git,推送,heroku会自动为你运行迁移 【参考方案1】:本地迁移完成后,<your django app>/migrations
文件夹 Ex 中应该有迁移文件(restapi 是我的 django 应用程序):
/Django/app/folder/restapi/migrations$ ls
0001_initial.py 0001_initial.pyc __init__.py __init__.pyc
所以你应该手动提交迁移文件:
heroku$ git commit restapi/migrations/0001_initial.py -m "migrations file"
heroku$ git push heroku master
注意:没有 heroku 不会自动在您的应用程序上运行迁移!我已经检查过了! 推送文件后,您应该为您的应用运行迁移:
heroku$ heroku run python manage.py migrate restapi
运行python manage.py migrate restapi
附加到终端...向上,运行.4602
要执行的操作:
应用所有迁移:restapi
运行迁移:
正在应用restapi.0001_initial...OK
【讨论】:
感谢您的回答。我在这个问题上摸不着头脑,因为我的设置文件反映了 heroku 设置,而且我还没有创建另一个开发设置文件来在本地运行东西然后推回 heroku。 +1!以上是关于Django 1.7 makemigrations 没有效果的主要内容,如果未能解决你的问题,请参考以下文章
makemigrations 和升级到 Django 1.7 的问题
Django 1.7 makemigrations 将表重命名为 None
Heroku 上的 Django 1.7:如何让 makemigrations 重新扫描数据库?