2012-03-28 8 views
1

クライアントの1人は、 サイトにジオロケーションデータを追加する必要があります。彼らは既にGIS拡張機能を持たないデータベース設定を持っているので、 私は (ジオロケーションデータのみを格納するために使用する予定の)新しいデータベース(GIS拡張機能付き)を作成することにしました。Django Southに2番目のデータベースを正常に統合するにはどうすればよいですか?

私はある時点で、私の開発で問題なく動作するように設定していました マシン(つまり、これらの新しいモデルのマイグレーションがあります)。しかし、コードが書かれたので、サーバーから直接 ダンプをインポートしました。私の開発マシンが正確に をプロダクションマシンに反映させるようになりました。今度は南を得ることができません。 マイグレーションが正しく適用されます。南は、複数のデータベースを可能にするいくつかの機能を持っているようですが、これまでに働いたことはありません。

  1. ちょうどモデルを追加し、移行:私が試した何

    。南は、GISの拡張子を持っていない元のデータベース にモデルを作成しようとしているので、

    AttributeError: 'DatabaseOperations' object has no attribute 
    'geo_db_type' 
    

    OK:これは私に次 エラーが発生します。

  2. モデルを追加しますが、 'geo'アプリを移行するための 'geo'データベースを指定してください。 これは私に次のエラーを与える:

    django.db.utils.DatabaseError: relation "south_migrationhistory" 
    does not exist 
    

    私は南はそのMigrationHistoryテーブルが同様に「地理」 データベース上に存在することを期待思いますか?

  3. 南のモデルを自分の「ジオ」データベースに存在させることができます。

    $ python manage.py syncdb --database=geo 
    $ python manage.py migrate 
    

    これは私に次のエラーを与える:

    django.db.utils.DatabaseError: relation "<model>" already exists 
    

    私はこれを推測している私はすでに他のデータベースに保存された をMigrationHistoriesを持っているためでしょうか?だから私は再び「DBS [ 『GEO』]」と 「DB」のすべてのインスタンスを置き換える前の三つの方法を試してみました :

  4. 南は明らかに( http://south.aeracode.org/docs/databaseapi.html#accessing-the-api参照)「DBS」 と呼ばれるまばらに文書化機能を備えています。

    a。マイグレーションはスムーズに実行されますが、実際には私の 'geo'データベースにはテーブル は作成されません。

    b。 'dbs'機能を使用しない場合と同じエラーです。

    c。 'dbs'機能を使用しない場合と同じエラーです。

このプロセス全体が非常にイライラしています。 Southを使用している場合、誰でも 複数のデータベースをサポートしていますか?

+0

投稿したソリューションを試しましたか? –

答えて

2

私は構造を変更するために、私は南使用するテーブルのモデルとこれらのコマンドを変更していると、彼らは常に働いていた時はいつでも:

python manage.py convert_to_south "your_app" 
python manage.py migrate "your_app" 

あなたのテーブルが作成されているので、私は、syncdbの実行を実行した後に、これらのコマンドを実行しているお勧めします。

関連する問題