Непоследовательное создание таблиц в Django Migrate - несколько унаследованных баз данных
Я новый пользователь Django и, похоже, у меня есть некоторые проблемы с созданием таблиц с помощью Django migrate в моей старой базе данных (SQL Server). В принципе, у меня есть 3 старые базы данных (comp1_db, comp2_db, comp3_db), в которых я настроил маршрутизацию следующим образом (в основном, одинаково для каждой):
**db_routers.py**
class comp1Router:
route_app_labels = {'contenttypes','shared_invoice_detail'}
def db_for_read(self, model, **hints):
if model._meta.app_label in self.route_app_labels:
return 'comp1_db'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label in self.route_app_labels:
return 'comp1_db'
return None
def allow_relation(self, obj1, obj2, **hints):
if (
obj1._meta.app_label in self.route_app_labels or
obj2._meta.app_label in self.route_app_labels
):
return True
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
if app_label in self.route_app_labels:
return db == 'comp1_db'
return None
class comp2Router:
route_app_labels = {'contenttypes','shared_invoice_detail'}
def db_for_read(self, model, **hints):
if model._meta.app_label in self.route_app_labels:
return 'comp2_db'
return None
def db_for_write(self, model, **hints):
"""
Attempts to write auth and contenttypes models go to auth_db.
"""
if model._meta.app_label in self.route_app_labels:
return 'comp2_db'
return None
def allow_relation(self, obj1, obj2, **hints):
if (
obj1._meta.app_label in self.route_app_labels or
obj2._meta.app_label in self.route_app_labels
):
return True
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
if app_label in self.route_app_labels:
return db == 'comp2_db'
return None
class comp3Router:
route_app_labels = {'contenttypes','shared_invoice_detail'}
def db_for_read(self, model, **hints):
if model._meta.app_label in self.route_app_labels:
return 'comp3_db'
return None
def db_for_write(self, model, **hints):
"""
Attempts to write auth and contenttypes models go to auth_db.
"""
if model._meta.app_label in self.route_app_labels:
return 'comp3_db'
return None
def allow_relation(self, obj1, obj2, **hints):
if (
obj1._meta.app_label in self.route_app_labels or
obj2._meta.app_label in self.route_app_labels
):
return True
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
if app_label in self.route_app_labels:
return db == 'comp3_db'
return None
**settings.py** router section
DATABASE_ROUTERS = ['routers.db_routers.AuthRouter',
'routers.db_routers.tsaRouter',
'routers.db_routers.inspireRouter',
'routers.db_routers.tengsunRouter',
]
У меня нет проблем с чтением данных из всех 3 баз данных, но когда я пытаюсь создать новую модель (следовательно, таблицу) во всех 3 базах данных, все вроде бы работает нормально. Однако я вижу, что таблица создается только в базе данных comp1. Я не могу понять, в чем проблема ..... Любая помощь в этом вопросе будет очень признательна, спасибо.
python manage.py makemigrations
python manage.py migrate --database=comp1_db (I repeat for comp2 and comp3)
....
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
Applying shared_invoice_detail.0001_initial... OK
Applying shared_invoice_detail.0002_dj_arinvoicehandover... OK