web-dev-qa-db-ja.com

Django.dbインポートモデルから、移行ImportError:名前の移行をインポートできません

だから私は私のDjangoウェブサーバーで南でいくつかの問題を経験し始めました。Migrateコマンドは毎回この出力で失敗します:

from Django.db import models, migrations

ImportError: cannot import name migrations 

(これより上では、エラーは移行に失敗したファイルへのルートを表示します)

私のDjangoバージョンは1.5.1ですが、私の南バージョンは0.8.4です

私が最も困っているのは、モジュールDjango.db.migrationsがどこにも見つからないことです。

何か案は?

15
Pablo

移行は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+にする必要があります。

21
sgarza62

OPは彼が書いていたスクリプトに移行をインポートしなかったと思います。スキーマ移行によって作成された自動スクリプトの1つが問題を引き起こしている可能性があります。

このエラーは、突然の移行を前に働いていた私のために現れ始め、そして私はそれが1.6.1と南== 0.8.4 ==ジャンゴのバージョンでやっていなかったことがわかったが、私のシェルでどのvirtualenvのへと混同になります使っていました。ある仮想環境を非アクティブ化して終了し、別の仮想環境を「workon」で開始し、フィールドの名前を変更するためにスキーママイグレーションを実行しました。 ./managemigrateを実行するとエラーが発生しました。シェルを終了して仮想環境を再開したところ、すべて問題ありませんでした。

1
MagicLAMP

まず、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の最後のメジャーリリースであると説明しています。

0
Carlos Calla