Создание и перенос нескольких баз данных не работает - PullRequest
1 голос
/ 21 февраля 2020
 DATABASE_ROUTERS = ['contact.models.DemoRouter']

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'NAME': 'bsdsample5',
            'USER': 'postgres',
            'PASSWORD': 'absd',
            'HOST': 'localhost',
            'PORT': '',
        },
        'bsdsample4': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'NAME': 'bsdsample4',
            'USER': 'postgres',
            'PASSWORD': 'bsd',
            'HOST': 'localhost',
            'PORT': '',
        }
    }

, чем модели контактов

  class SpamExternalInquiry(models.Model):
        first_name = models.CharField(max_length=40)
        last_name = models.CharField(max_length=40)
        email = models.CharField(max_length=256)
        date_sent = models.DateTimeField(default=timezone.now)
        subject = models.CharField(max_length = 200)
        message = models.TextField(max_length = 2000)
        spam_score = models.IntegerField()
        class Meta:
            app_label = 'bsdsample4'
        def __str__(self):
            return self.email + ' - ' + self.subject + ' - ' + str(self.date_sent)

        def initialize(self, extInquiry):
            self.first_name = extInquiry.first_name
            self.last_name = extInquiry.last_name
            self.email = extInquiry.email
            self.date_sent = extInquiry.date_sent
            self.subject = extInquiry.subject
            self.message = extInquiry.message




    class DemoRouter:
        def db_for_read(self, model, **hints):

            if model._meta.app_label == 'bsdsample4':
                return 'bsdsample4'
            return None

        def db_for_write(self, model, **hints):

            if model._meta.app_label == 'bsdsample4':
                return 'bsdsample4'
            return None

        def allow_relation(self, obj1, obj2, **hints):
            if obj1._meta.app_label == 'bsdsample4' or \
                    obj2._meta.app_label == 'bsdsample4':
                return True
            return None

        def allow_migrate(self, db, app_label, model_name=None, **hints):
            if app_label == 'bsdsample4':
                return db == 'bsdsample4'
            return None

SO Я пытаюсь выполнить миграцию и выполнить миграцию, к сожалению, она берет случайные таблицы из моей базы данных и переносит ее в bsdsample4.APart из той, которую я действительно хочу , spamexternalinquiry. Я только хочу, чтобы spamexternalinquiry находился в bsdsample4 .. все остальные таблицы моей базы данных хотят оставаться по умолчанию.

Django версия 2.2 и python версия 3.

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