在我的Django项目中,我使用了两个数据库,其中一个是我自己的PostgreSQL数据库,我拥有读取和写入权限,另一个是外部PostgreSQL数据库,我只有只读权限。顺便说一下,这两个数据库都有各自的模型,它们没有任何相同之处。
在项目的上下文中,它可以完美地工作,我可以访问这两个数据库。但是当我使用Django测试套件(
我不想这样做,我仍然希望能够在测试套件中访问外部PostgreSQL数据库,而无需在该外部PostgreSQL数据库上创建测试数据库。
它还给我报了这个错误:
但我无法访问外部数据库中的“postgres”数据库,也不想对其运行初始化查询。
以下是外部只读数据库连接的配置:
在项目的上下文中,它可以完美地工作,我可以访问这两个数据库。但是当我使用Django测试套件(
./manage.py test
)时,Django会尝试为外部数据库创建测试数据库。我不想这样做,我仍然希望能够在测试套件中访问外部PostgreSQL数据库,而无需在该外部PostgreSQL数据库上创建测试数据库。
它还给我报了这个错误:
/usr/local/lib/python3.10/site-packages/django/db/backends/postgresql/base.py:323: RuntimeWarning:
Normally Django will use a connection to the 'postgres' database to avoid
running initialization queries against the production database when it's not needed
(for example, when running tests).
Django was unable to create a connection to the 'postgres' database
and will use the first PostgreSQL database instead.
但我无法访问外部数据库中的“postgres”数据库,也不想对其运行初始化查询。
以下是外部只读数据库连接的配置:
DATABASES["aact"] = {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"OPTIONS": {"options": "-c search_path=ctgov"},
"NAME": AACT_DATABASE_NAME,
"USER": AACT_DATABASE_USER,
"PASSWORD": AACT_DATABASE_PASS,
"HOST": AACT_DATABASE_HOST,
"PORT": AACT_DATABASE_PORT,
"TEST": {"NAME": AACT_DATABASE_NAME, "MIGRATE": False},
}