0

MongoDB Nosql データベースを使用するプロジェクトに「Django Non-rel」と「Django-MongoDB ORM」を使用しています。モデルの 1 つを変更し、それに ForeignKey フィールドを追加する必要があります。South がデータ移行に役立つと思っていましたが、 South が MongoDB をサポートしていないことを知りました。私のモデルは次のようになります。

class Projects(models.Model):
    projectName =models.CharField(max_length = 100,unique=True,db_index=True)
    projectManager = models.ForeignKey('auth.User')

モデルに追加states = models.ForeignKey('States')する必要がありますが、既存のデータベースに問題が発生しないように、南なしでこれを行う方法がわかりません。助けてください:(

4

1 に答える 1

1

私は appengine で django non-rel を使用しています。これは MongoDB に完全に変換されない可能性がありますが、同じだと思います。

私は次のことを行ってきましたが、いくつかの手順が必要です。

  1. モデルを null=True で更新しました: projectManager = models.ForeignKey('auth.User', null=True)

これにより、データベース内の既存のモデルによって Django が例外をスローすることがなくなります。

  1. すべてのプロジェクトを照会し、それらの projectManager フィールドを更新するスクリプトを作成します

  2. null=False projectManager = models.ForeignKey('auth.User') でモデルを再度更新します。

DB 内のどのオブジェクトにも projectManager の null フィールドがないため、null フラグを削除しても問題ありません。

于 2012-05-10T18:59:03.447 に答える