簡體   English   中英

django.core.exceptions.ImproperlyConfigured:settings.DATABASES 配置不正確。 請提供 ENGINE 值。 router.py 給出

[英]django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. router.py given

數據庫設置

我知道 settings.DATABASES 已正確配置,因為我已經創建了模型,然后 Django 用於在數據庫中創建表,但無論出於何種原因,它現在都會導致此錯誤。 您還可以看到我已經“提供了 ENGINE 值”。 和 router.py 第一個數據庫客戶我在 makemigration 命令期間沒有收到任何錯誤並成功在數據庫中創建表

DATABASES ={
    'default': {},
    'users':{
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'customer',
        'USER': 'postgres',
        'PASSWORD': '123',
     },
     'listings':{
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'listing',
        'USER': 'postgres',
        'PASSWORD': '123',
     },
}
DATABASE_ROUTERS = ['customer.router.AuthRouter', 'list.router.ListingRouter']

路由器.py





class ListingRouter:
    route_app_labels = {'listing'}
    def db_for_read(self, model, **hints):
        if model._meta.app_label in self.route_app_labels:
            return 'listings'
        return None
    def db_for_write(self, model, **hints):
        if model._meta.app_label in self.route_app_labels:
            return 'listings'
        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 == 'listings'
        return None

數據庫設置和 router.py 附加 1 2

您還需要為default數據庫提供一個值,因此:

DATABASES = {
    'default': {
        'ENGINE': '…',
        'NAME': '…',
        'USER': '…',
        'PASSWORD': '…',
    },
    'users': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'customer',
        'USER': 'postgres',
        'PASSWORD': '123',
    },
    'listings': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'listing',
        'USER': 'postgres',
        'PASSWORD': '123',
    },
}

如果users是默認值,您可以指定這個:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'customer',
        'USER': 'postgres',
        'PASSWORD': '123',
    },
    'listings': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'listing',
        'USER': 'postgres',
        'PASSWORD': '123',
    },
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM