Django 2.2-测试我的应用程序连接到哪个数据库
我希望这将类似于之前回答的几个问题 我想知道测试DB连接字符串的完整过程是什么,而不是Django中当前连接的DB的DB名称是什么?我看到了一些打印名称的方法,但是在本地开发和登台过程中,这些名称将是相同的。我需要知道更多,比如db引擎,例如,是PostgreSQL,还是db.sqlite3。等等,以及各种其他DB参数 我目前正在尝试调试芹菜节拍任务无法为我认为连接到的应用程序数据库创建数据库项的原因 我正在执行一个简单的obj,created=Object.objects.get_或_create DB方法,在创建日志时,有些是真的,有些是假的。到目前为止一切都很好 但是,Django CMS的管理部分没有向DB显示更多的条目 我相信测试Django应用程序正在使用的DB的位置和连接字符串在调试这个ghost对象创建时可能会很有用…除非有人能就芹菜守护进程没有实际持久化DB创建/更新等类似问题提出建议 也许是这样的:Django 2.2-测试我的应用程序连接到哪个数据库,django,database,docker,celery,Django,Database,Docker,Celery,我希望这将类似于之前回答的几个问题 我想知道测试DB连接字符串的完整过程是什么,而不是Django中当前连接的DB的DB名称是什么?我看到了一些打印名称的方法,但是在本地开发和登台过程中,这些名称将是相同的。我需要知道更多,比如db引擎,例如,是PostgreSQL,还是db.sqlite3。等等,以及各种其他DB参数 我目前正在尝试调试芹菜节拍任务无法为我认为连接到的应用程序数据库创建数据库项的原因 我正在执行一个简单的obj,created=Object.objects.get_或_crea
from django.db import connection
print(connection.settings_dict)
是否足够?因此,以下内容有助于确定DB引擎:
from django.db import connection
print(connection.settings_dict)
对于有用的指导,connection.settings\u dict包含以下结构:
{
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '/usr/src/app/db.sqlite3',
'ATOMIC_REQUESTS': False,
'AUTOCOMMIT': True,
'CONN_MAX_AGE': 0,
'OPTIONS': {},
'TIME_ZONE': None,
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
'TEST': {
'CHARSET': None,
'COLLATION': None,
'NAME': None,
'MIRROR': None
}
}
因此,我们可以在管理命令中使用类似的内容:
from django.db import connection
from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = 'Displays The Currently Connected DB Settings'
def handle(self, *args, **kwargs):
print(
"The current database engine is {ENGINE}".format(**connection.settings_dict)
)
print(
"Currently connected to host {HOST} on port {PORT} ".format(**connection.settings_dict)
)
我想这是一个更好的方法,但我没有用django 2.2@UtkuCansever测试它,是的。我对这个问题和答案投了赞成票。