私はDjango既存のpostgresql dbのインターフェイスを開発しようとしています。dbはさまざまなスキーマを使用します。次の例は機能するはずですが、文献を見て、それはで定義されたスキーマのみを返しますpython manaage.py inspectdb
を実行したときのデフォルトのデータベース。これが機能する場合、Djangoモデルを定義するときに使用するスキーマをどのように定義しますか?
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.postgresql_psycopg2',
'OPTIONS' : {
'options': '-c search_path=public'
},
'NAME': 'gygaia',
'USER':'postgres',
'PASSWORD':'abc',
'Host':'localhost',
'PORT':'5432',
},
'samples': {
'ENGINE': 'Django.db.backends.postgresql_psycopg2',
'OPTIONS' : {
'options': '-c search_path=samples'
},
'NAME': 'gygaia',
'USER':'postgres',
'PASSWORD':'abc',
'Host':'localhost',
'PORT':'5432',
},
'excavation': {
'ENGINE': 'Django.db.backends.postgresql_psycopg2',
'OPTIONS' : {
'options': '-c search_path=excavation'
},
'NAME': 'gygaia',
'USER':'postgres',
'PASSWORD':'abc',
'Host':'localhost',
'PORT':'5432',
},
}
これは、ForeignKeyで相互に交差する2つのアプリと3つのスキームを含む、非常に簡単なプロジェクトの例です。
https://github.com/mullerivan/DjangomultipleSchema
アイデアは、使用する必要があるスキーマとテーブルで各モデルを定義することです
class Meta: db_table = u'"app1\".\"on_app_one"'