私はいくつかのdjangoアプリケーションを持っています:
INSTALLED_APPS = (
'geonode.exposure',
'geonode.isc_viewer',
'geonode.geodetic',
'geonode.observations',
'geonode.ged4gem',
で1つを除いてすべてを管理する必要がありますsyncdb
。どうすればsyncdb
意図的にgeonode.exposure
アプリケーションをスキップできますか?
更新: 完全な構成については説明しませんでした。詳しく説明します。サウスを使用して、公開を除くすべてのアプリのデータベースの移行とフィクスチャを管理しています。エクスポージャーアプリは外部データベースにアクセスしており、ルーターを使用してアクセスしています(これが、syncdbによってスキップされるようにする理由です)。私のルーター設定は次のようになります。
class GedRouter(object):
def db_for_read(self, model, **hints):
"Point all operations on ged models to 'geddb'"
if model._meta.app_label == 'exposure':
return 'geddb'
return 'default'
def allow_syncdb(self, db, model):
if db == 'geddb' or model._meta.app_label == "ged":
return False # we're not using syncdb on our legacy database
else: # but all other models/databases are fine
return True
南はallow_syncdbメソッドを尊重していませんか?移行がないため、露出アプリで南にsyncbdを実行していますか?