web-dev-qa-db-ja.com

Django 1.7-アプリ 'your_app_name'には移行がありません

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)

なぜこれが私にとってうまくいかないのか誰かに光を当てることができますか?

16
user1261774

__init__.pyファイルを含むmigrationsフォルダーを実際に含むアプリのみが移行で認識されることに気付きました。 IEアプリにmodels.pyのみを含めるだけでは十分ではありません。

14
Erwin Kooi

アプリが1つしかない場合、アプリを指定せずに migrate を実行すると、移行が機能する場合があります。

その場合、最初に確認することは、アプリ名がINSTALLED_APPSの下のsettings.pyで指定されたものと一致することです。

コメントで指摘されているように、アプリ名は[parent_app]。[app_name]の形式にすることができます。この場合、移行には[app_name]のみが必要です。

14
James Bradbury

アプリにはmodels.pyファイル(空でも可)。

出典: https://groups.google.com/forum/#!msg/Django-users/bsTZEmxgDJM/wH0p3xinBWIJ

6

別の考えられる理由を述べるだけです:

私のDjangoアプリでは、正しい移行を追加し、pipを使用してアプリをインストールしましたが、同じエラーが発生しました。

私が欠けていたのは正しいMANIFEST.inファイルですパラメータinclude_package_data setup.pyファイルのsetup()でTrueが設定されていませんでした。

2
Walter Renner