だから私は私のDjangoウェブサーバーで南でいくつかの問題を経験し始めました。Migrateコマンドは毎回この出力で失敗します:
from Django.db import models, migrations
ImportError: cannot import name migrations
(これより上では、エラーは移行に失敗したファイルへのルートを表示します)
私のDjangoバージョンは1.5.1ですが、私の南バージョンは0.8.4です
私が最も困っているのは、モジュールDjango.db.migrationsがどこにも見つからないことです。
何か案は?
移行はDjango 1.7; 1.5を使用しています。
これが これを説明するドキュメントへのリンク です。古いバージョンのDjangoを使用している場合、データ移行の最も一般的なオプションは South です。
[〜#〜]編集[〜#〜]
したがって、Django Rest Frameworkがエラーの原因です。ドキュメントから:
Rest_framework.authtokenアプリには、Djangoネイティブ移行(Djangoバージョン> 1.7の場合))と南移行(Django authtokenテーブルを作成するバージョン<1.7)。
注:From REST Framework v2.4.0 using South with Django <1.7では、South v1.0 +
南にアップグレード バージョン0.8.4を超えて1.0+にする必要があります。
OPは彼が書いていたスクリプトに移行をインポートしなかったと思います。スキーマ移行によって作成された自動スクリプトの1つが問題を引き起こしている可能性があります。
このエラーは、突然の移行を前に働いていた私のために現れ始め、そして私はそれが1.6.1と南== 0.8.4 ==ジャンゴのバージョンでやっていなかったことがわかったが、私のシェルでどのvirtualenvのへと混同になります使っていました。ある仮想環境を非アクティブ化して終了し、別の仮想環境を「workon」で開始し、フィールドの名前を変更するためにスキーママイグレーションを実行しました。 ./managemigrateを実行するとエラーが発生しました。シェルを終了して仮想環境を再開したところ、すべて問題ありませんでした。
まず、migrations
をインポートすることはありません。インポートするモジュールではなく、実行するコマンドツールです。
次に、1.7バージョンでDjangoに移行が導入され、1.5を使用しているため、使用できなくなります。
Django 1.7以前は、Southを使用するとデータベースで移行できるため、人々はSouthで作業していました。Django 1.7では、Southはもう必要ありません。移行はすでにDjangoに含まれているためです。つまり、バージョン1.7ではSouthがDjangoに含まれていました。
このリンクを見てください: https://docs.djangoproject.com/en/1.7/topics/migrations/
彼らは、Djangoへの移行が含まれていると説明しています。
実際、Southの最後のバージョンはバージョン1.0であり、Southが含まれているDjango 1.7バージョンに取り組んでいるため、これ以上のバージョンをリリースしないと発表しました。現在のバージョンをサポートしますが、これ以上の機能は追加されません。
このリンクを見てください: http://south.readthedocs.org/en/latest/releasenotes/1.0.html
彼らは、1.0がDjango 1.7の移行に取り組んでいるため、Southの最後のメジャーリリースであると説明しています。