Django 1.7 - App'your_app_name'没有迁移

时间:2014-11-03 05:50:08

标签: python django upgrade django-migrations

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

我已关注django docs here

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

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

然后我跑了:

python manage.py makemigrations your_app_name

我收到以下确认消息:

Migrations for 'your_app_name':
  0001_initial.py:
    - Create model UserProfile

接下来我跑:

python manage.py migrate your_app_name

我收到以下错误:

CommandError: App 'your_app_name' does not have migrations (you cannot selectively sync unmigrated apps)

根据文档,我也跑了:

python manage.py migrate --fake your_app_name

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

CommandError: App 'your_app_name' does not have migrations (you cannot selectively sync unmigrated apps)

有人能说清楚为什么这对我不起作用吗?

5 个答案:

答案 0 :(得分:13)

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

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

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

答案 1 :(得分:10)

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

答案 2 :(得分:6)

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

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

答案 3 :(得分:2)

提到另一个可能的原因:

在我的Django应用程序中,我添加了正确的迁移并使用pip安装了应用程序并得到了相同的错误。

我缺少的是一个正确的MANIFEST.in文件 此外,setup.py文件中setup()中的参数include_package_data未设置为True

答案 4 :(得分:-1)

要为应用创建初始迁移,请运行makemigrations并指定应用名称。将创建迁移文件夹。

./manage.py makemigrations <myapp>

您的应用必须首先包含在INSTALLED_APPS中(在settings.py内部)。