Как сделать миграцию модели для разных приложений в разных БД в Django - PullRequest
0 голосов
/ 28 июня 2018

Я использовал маршрутизаторы БД для приложений, но после запуска миграционных таблиц команды создаются в БД по умолчанию, почему ??

model code:

from django.db import models

# Create your models here.
class Employee(models.Model):

      Employee_id = models.AutoField(primary_key=True)
      Employee_name = models.CharField(max_length=100)
      Mobile_number = models.IntegerField()

1 Ответ

0 голосов
/ 28 июня 2018

Наконец-то это сработало для меня

Синхронизация ваших баз данных Команда управления переносом работает одновременно с одной базой данных. По умолчанию он работает с базой данных по умолчанию, но, предоставив опцию --database, вы можете настроить синхронизацию другой базы данных. Таким образом, чтобы синхронизировать все модели со всеми базами данных в первом примере выше, вам нужно вызвать:

$ ./manage.py migrate
$ ./manage.py migrate --database=users

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

Если, как и во втором примере выше, вы оставили базу данных по умолчанию пустой, вы должны указывать имя базы данных при каждом запуске миграции. Если имя базы данных пропущено, возникнет ошибка. Для второго примера:

$ ./manage.py migrate --database=users
$ ./manage.py migrate --database=customers
...