多个数据库创建和迁移不起作用

时间:2020-02-21 16:14:32

标签: python django

 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

因此,我正在尝试进行迁移并进行迁移,不幸的是,它采用了我数据库的随机表并将其迁移到bsdsample4.APart,而不是我真正想要的一个,即spamexternalinquiry。 我只希望spamexternalinquiry在bsdsample4中。我的所有其他数据库表都希望保留默认值。

Django 2.2版和python 3版。

0 个答案:

没有答案
相关问题