Django 1.7 - App'your_app_name'没有迁移

use*_*774 14 python django upgrade django-migrations

我正在尝试从Django 1.6.7升级到Django 1.7.1,所以我一直在尝试迁移我的应用程序.

在这里关注了django文档.

我从已安装的应用中删除了南方.

在迁移目录中,我删除了编号的迁移文件和.pyc文件,但我保留了目录&__ init__.py文件.

然后我跑:

python manage.py makemigrations your_app_name
Run Code Online (Sandbox Code Playgroud)

我收到以下确认消息:

Migrations for 'your_app_name':
  0001_initial.py:
    - Create model UserProfile
Run Code Online (Sandbox Code Playgroud)

接下来我运行:

python manage.py migrate your_app_name
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

CommandError: App 'your_app_name' does not have migrations (you cannot selectively sync unmigrated apps)
Run Code Online (Sandbox Code Playgroud)

根据文档,我也跑了:

python manage.py migrate --fake your_app_name
Run Code Online (Sandbox Code Playgroud)

我收到了同样的错误消息:

CommandError: App 'your_app_name' does not have migrations (you cannot selectively sync unmigrated apps)
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么这对我不起作用?

Jam*_*ury 13

如果您有一个应用程序,则可以在不指定应用程序或迁移的情况下运行迁移.

如果是这样,首先要检查的是您的应用名称与INSTALLED_APPS下的settings.py中指定的名称相匹配.

正如评论中所指出的,应用名称可以采用[parent_app].[app_name]的形式.在这种情况下,迁移仅需要[app_name].

  • 这第二部分对于落在这里的人来说可能有点混乱,因为安装的应用程序名称可能是'[parent_app].[app_name]',而migrate.py命令只需要[app_name].令人困惑的是,可以提供与原始海报相同的错误. (4认同)
  • 谢谢@TheCardCheat!我正在使用`parent_app.app_name`而无处可去. (2认同)

小智 11

我注意到只有那些实际包含migrations文件夹的应用程序才能__init__.py被迁移识别.只在你的应用程序中只有models.py的IE是不够的.


Pas*_*nus 6

您的应用必须包含一个models.py文件(甚至是emtpy).

来源:https://groups.google.com/forum/#! msg/ django- users/ bsTZEmxgDJM/wH0p3xinBWIJ