Django 1.6.7からDjango 1.7.1にアップグレードしようとしているので、アプリを移行しようとしています。
私は Django docs here に従いました。
インストールしたアプリから南を削除しました。
移行ディレクトリで、番号付きの移行ファイルと.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)
なぜこれが私にとってうまくいかないのか誰かに光を当てることができますか?
__init__.py
ファイルを含むmigrations
フォルダーを実際に含むアプリのみが移行で認識されることに気付きました。 IEアプリにmodels.pyのみを含めるだけでは十分ではありません。
アプリが1つしかない場合、アプリを指定せずに migrate を実行すると、移行が機能する場合があります。
その場合、最初に確認することは、アプリ名がINSTALLED_APPSの下のsettings.pyで指定されたものと一致することです。
コメントで指摘されているように、アプリ名は[parent_app]。[app_name]の形式にすることができます。この場合、移行には[app_name]のみが必要です。
アプリにはmodels.py
ファイル(空でも可)。
出典: https://groups.google.com/forum/#!msg/Django-users/bsTZEmxgDJM/wH0p3xinBWIJ
別の考えられる理由を述べるだけです:
私のDjangoアプリでは、正しい移行を追加し、pipを使用してアプリをインストールしましたが、同じエラーが発生しました。
私が欠けていたのは正しいMANIFEST.inファイルですパラメータinclude_package_data
setup.pyファイルのsetup()でTrue
が設定されていませんでした。