Есть в проекте две базы - одна 'default', другая - скажем 'legacy'.
'legacy' создана с помощью inspectdb - данные из нее читаются без каких-либо проблем.
Но, - база только на чтение - мне нужно оттуда данные только читать, какие-либо операции записи запрещены.
Проблема в том, что при любых миграциях django пытается там создать таблицу 'django_migrations', у него это не получается, и скрипт миграции благополучно валится. Из-за чего я не могу сделать никаких миграций в БД по-умолчанию.
Как запретить django делать это на базе только для чтения?
Роутер использую что-то типа этого:
class LegacyRouter(object):
def db_for_read(self, model, **hints):
if model._meta.app_label == 'legacy_app':
return 'legacy'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label == 'legacy_app':
return False
return None
def allow_relation(self, obj1, obj2, **hints):
if obj1._meta.app_label == 'legacy_app' or obj2._meta.app_label == 'legacy_app':
return False
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
if app_label == 'legacy_app':
return False
return None
def allow_syncdb(self, db, model):
if db == 'legacy' or model._meta.app_label == 'legacy_app':
return False