6

我一直python manage.py makemigrations在我的 heroku 服务器上运行,但无论我运行多少次,我都会得到:

$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 和迁移的了解只够危险,所以我想我会在这里问。有没有人遇到过这个?

4

1 回答 1

7

本地迁移完成后,您应该在<your django app>/migrationsEx 文件夹中有迁移文件(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附加到终端... up, run.4602 要执行的操作:应用所有迁移:restapi 运行迁移:应用restapi.0001_initial... OK

于 2014-12-09T12:17:17.467 回答