尝试按照Django 项目中的教程进行操作。
我遇到的问题是在执行命令时:
python manage.py sql polls
我得到了错误:
CommandError:应用程序“民意调查”有迁移。当应用程序有迁移时,只能使用 sqlmigrate 和 sqlflush 命令
到目前为止,我似乎无法在 Internet 或该网站上找到任何有关该程序解决方案的指南。
您可以运行python manage.py makemigration
或python manage.py migrate
仅删除迁移文件夹
问题是您正在使用Django 1.8
1.6 教程。注意教程开头的第一句话:
本教程是为 Django 1.6 和 Python 2.x 编写的。如果 Django 版本不匹配,您可以使用本页右下角的版本切换器参考您的 Django 版本的教程,或者将 Django 更新到最新版本。
在您的情况下,要么降级到 1.6,要么使用开发(当前为 1.8)版本的教程。
只需删除文件夹app-name/migrations
。
Django 1.7
我找到的Python 3.4
解决方案是删除此文件夹,现在一切正常。
使用 django 1.7,而不是删除 app-name/migrations 文件夹,在您站点的 MIGRATION_MODULES 条目中,您可以通过添加一些虚拟字符串来使用不存在的模块名称重命名应用程序字典值:
MIGRATION_MODULES['my_app'] += '_xx'
然后 manage.py sqlclear my_app 工作正常。
在 Django 1.8 中,你应该运行另一个命令——makemigrations [你的应用程序名称]:
$ python manage.py makemigrations polls
您应该会看到类似于以下内容的内容:
Migrations for 'polls':
0001_initial.py:
- Create model Question
- Create model Choice
- Add field question to choice