簡體   English   中英

Django測試的數據庫配置

[英]Database config for Django testing

我正在使用 Django 和 Postgres 構建一個應用程序。 我設法做了遷移,我想測試它。 當我使用 sqlite 進行測試時,一切正常,但是當我使用 postgres 運行測試時,出現此錯誤:

Creating test database for alias 'default'...
Got an error creating the test database: permission denied to create database

我檢查了用戶的權限,我確定該用戶有權創建數據庫。

我的數據庫配置如下所示:

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }

DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.postgresql_psycopg2',
         'NAME': '***',
         'USER': '***',
         'PASSWORD': '***',
         'HOST': '****',
         'PORT': '****',
     }
 }

我的 postgres 數據庫在服務器上。

我的問題是:

  • 配置數據庫和運行測試的正確方法是什么?
  • 我應該使用 sqlite 進行測試嗎?
  • 如果是這樣,我的代碼應該是什么樣子,這樣我就不必評論配置了?

看起來您的數據庫用戶沒有創建新數據庫的權限。 請看這里 此命令行實用程序允許您創建用戶並設置其權限。

例子:

createuser my_user --createdb -W --username postgres

注意:您正在代表 PostgreSQL 管理員角色創建用戶“my_user”,默認情況下是postgres

回答你的問題:

  1. 您可能有多個針對不同階段的配置,例如開發、測試、生產。
  2. 在某種程度上,您可以同時使用 SQLite 和 Postgres 數據庫進行測試。 但是,如果您的應用程序依賴於僅在 Postgres 中可用的某些特定功能,那么您應該獲得獎勵,那么使用 SQLite 進行測試就沒有意義。 我個人更喜歡在所有階段使用相同的數據庫。 如果您不想在計算機上安裝數據庫服務器,也可以使用 docker。

暫無
暫無

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

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