Python Django 1.7-应用程序';您的应用程序名称';没有迁移
我正在尝试从Django 1.6.7升级到Django 1.7.1,所以我一直在尝试迁移我的应用程序 我一直在关注这个问题 我从我安装的应用程序中删除了南方 在迁移目录中,我删除了编号的迁移文件和.pyc文件,但保留了目录&\uuuuu\init\uuuuu.py文件 然后我运行:Python Django 1.7-应用程序';您的应用程序名称';没有迁移,python,django,upgrade,django-migrations,Python,Django,Upgrade,Django Migrations,我正在尝试从Django 1.6.7升级到Django 1.7.1,所以我一直在尝试迁移我的应用程序 我一直在关注这个问题 我从我安装的应用程序中删除了南方 在迁移目录中,我删除了编号的迁移文件和.pyc文件,但保留了目录&\uuuuu\init\uuuuu.py文件 然后我运行: python manage.py makemigrations your_app_name 我收到以下确认信息: Migrations for 'your_app_name': 0001_initial.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)
有人能解释一下为什么这对我不起作用吗?你的应用程序必须包含
models.py
文件(甚至是emtpy)
来源:如果您只有一个应用程序,在不指定应用程序或迁移的情况下运行可能会起作用 如果是这样,首先要检查你的应用程序名是否与安装的应用程序下的settings.py中指定的名称匹配
正如评论中指出的,应用程序名称可以采用[parent_app].[app_name]的形式。在这种情况下,迁移只需要[app_name]。仅提及另一个可能的原因: 在我的Django应用程序中,我添加了正确的迁移,并使用pip安装了该应用程序,但得到了相同的错误 我缺少的是一个正确的MANIFEST.in文件
另外,setup.py文件中的参数
include_package_data
in setup()未设置为True
我注意到只有那些实际包含迁移
文件夹且包含文件的应用程序才会被迁移识别。IE在你的应用程序中只有models.py是不够的。是否makemigrations
在你的migrations
文件夹中创建了一个新文件?是的。新文件名为0001_initial。这第二部分可能会让登陆此处的人有点困惑,因为安装的应用程序名称可能是“[parent_app].[app_name]”,而migrate.py命令只需要[app_name]。这可能会产生与原始海报相同的错误。谢谢@TheCardCheat!我用的是parent\u app.app\u name
,结果一无所获。