20

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

我在这里关注了 django 文档

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

在迁移目录中,我删除了编号的迁移文件和 .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)

谁能解释为什么这对我不起作用?

4

4 回答 4

25

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

于 2018-02-08T16:09:55.717 回答
15

如果您只有一个应用程序,则在不指定应用程序或迁移的情况下运行migrate可能会起作用。

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

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

于 2014-12-22T15:24:03.347 回答
7

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

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

于 2014-12-04T14:06:36.813 回答
3

仅提及另一个可能的原因:

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

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

于 2017-06-01T09:23:32.340 回答