Djangoプロジェクト のチュートリアルに従おうとしています。
私が遭遇した問題は、コマンドを実行するとき:python manage.py sql polls
エラーが発生しました:
CommandError:アプリ 'polls'に移行があります。アプリに移行がある場合は、sqlmigrateコマンドとsqlflushコマンドのみを使用できます
これまでのところ、プログラムの解決策について、インターネットやこのWebサイトでガイドを見つけることができないようです。
問題は、1.6チュートリアルの実行中にDjango 1.8
を使用していることです。 チュートリアル の先頭にある最初の単語に注意してください:
このチュートリアルはDjango 1.6およびPython 2.x用です。Djangoバージョンが一致しない場合は、このページの右下隅にあるバージョンスイッチャーを使用して、ご使用のバージョンのDjangoのチュートリアルを参照するか、Djangoを最新バージョンに更新してください。
あなたの場合、1.6にダウングレードするか、 開発用チュートリアル(現在は1.8)バージョン を使用してください。
python manage.py makemigration
の後にpython manage.py migrate
を実行するか、移行フォルダーを削除することができます。
フォルダを削除するだけですapp-name/migrations
。
Django 1.7
およびPython 3.4
私が見つけた解決策は、このフォルダーを削除することであり、すべてが機能するようになりました。
Django 1.7では、app-name/migrationsフォルダーを削除する代わりに、サイトのMIGRATION_MODULESエントリで、ダミーの文字列を追加することで、アプリケーションディクショナリの値を存在しないモジュール名に変更できます。 :
MIGRATION_MODULES ['my_app'] + = '_ xx'
そして、manage.py sqlclearmy_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