django -tenant-схемы не будут применять миграцию к схеме клиента, только общедоступные - PullRequest
0 голосов
/ 18 апреля 2020

У меня мультитенантное приложение django, использующее django -tenant-schemas .

Существует приложение SiteConfig:

настройки .py :

TENANT_APPS = (
   ...
   'siteconfig',
   ...
)

INSTALLED_APPS = (
   ...
   'siteconfig',
   ...
)

Но моя последняя миграция в этом приложении не будет применяться к моим арендаторам:

$ ./manage.py migrate_schemas --shared
[standard:public] === Running migrate for schema public
[standard:public] Operations to perform:
[standard:public]   Apply all migrations: account, admin, ... siteconfig, sites, socialaccount, tenant, utilities
[standard:public] Running migrations:
[standard:public]   Applying siteconfig.0007_siteconfig_access_code...
[standard:public]  OK

Как вы можете видеть, она применяет миграцию только к схема publi c, а не мои арендаторы.

Если я посмотрю на своего арендатора, он покажет миграцию там как неприменимую:

$ ./manage.py tenant_command showmigrations

Enter Tenant Schema ('?' to list schemas): ?
public - localhost
test - test.localhost
Enter Tenant Schema ('?' to list schemas): test
account
 [X] 0001_initial
 [X] 0002_email_max_length
admin
 [X] 0001_initial
 [X] 0002_logentry_remove_auto_add+
 .
 .
 .
siteconfig
 [X] 0001_initial
 [X] 0002_auto_20200402_2201
 [X] 0003_auto_20200402_2218
 [X] 0004_auto_20200402_2233
 [X] 0005_auto_20200403_0947
 [X] 0006_auto_20200403_1528
 [ ] 0007_siteconfig_access_code  # <-- DIDN'T APPLY!

Почему это не относится к арендатору test и как мне заставить это сделать?

1 Ответ

1 голос
/ 18 апреля 2020

Вы работаете

manage.py migrate_schemas --shared

, который переносит только публичные c схемы

Вы должны запустить

 manage.py migrate_schemas

Согласно документации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...