我正在尝试从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)
有人能解释一下为什么这对我不起作用吗?
5条答案
按热度按时间68bkxrlz1#
我注意到,只有那些实际包含
migrations
文件夹的应用程序才能被迁移识别。IE在models.py你的应用程序中只有www.example.com是不够的。6ovsh4lw2#
如果您只有一个应用程序,则运行migrate时不指定应用程序或迁移可能有效。
如果是这样,首先要检查的是您的应用程序名称是否与www.example.com中INSTALLED_APPS下指定的名称匹配settings.py。
正如评论中指出的,应用程序名称可以采用[parent_app].[app_name]的形式。在这种情况下,migrate只需要[app_name]。
vaj7vani3#
您的应用必须包含
models.py
文件(甚至是emtpy)。来源:https://groups.google.com/forum/#!msg/django-users/bsTZEmxgDJM/wH0p3xinBWIJ
6yoyoihd4#
再提一个可能的原因:
在我的Django应用程序中,我添加了正确的迁移,并使用pip安装了应用程序,并得到了相同的错误。
我缺少的是一个正确的MANIFEST.in文件。另外,www.example.com文件中的setup()中的参数
include_package_data
setup.py没有设置为True
。taor4pac5#
请确保以下事项:
1.确认已将“app_name.apps.AppNameConfig”添加到已安装应用的列表中。
1.仔细检查
settings.py
文件中项目的数据库配置。1.确保每个应用程序都包含一个名为
migrations
的目录,并且在该目录中有一个名为__init__.py
的文件。