1
我爲我的Django應用程序安裝了pgcryto擴展使用PostgreSQL數據庫。在生產服務器上,我手動創建一個用戶,然後運行CREATE EXTENSION pgcrypto;
以安裝擴展。Django測試與pgcrypto失敗
然而,當我運行./manage.py test
,因爲我的模型是使用來自pgcrypto_expressions
的EncryptedTextField
場失敗,這是自動創建的測試數據庫不具有自然安裝的擴展(因爲它需要創建的每個數據庫中明確啓用)。在Django設置我的測試數據庫並開始遷移的時間之間,如何「注入」代碼/命令?
或者說,我該如何在PostgreSQL中啓用全局擴展?
您可以創建一個安裝擴展的遷移 - 請參閱示例[在文檔](https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/operations/#creating-extension-using -migrations)。 – Alasdair
@Alasdair太棒了,正是我所需要的。我已經快速瀏覽了一下,但是因爲我仍然是一個noob,我在哪裏放這個代碼?任何文件,它會撿起來?我是否需要將它插入到001 _...遷移文件中(但每次都會被覆蓋) – strangetimes
我不明白它爲什麼會被覆蓋。它可以進入你喜歡的任何應用程序的遷移文件。理想情況下,將其添加爲應用程序的「0001_initial」遷移。只要使用'EncryptedTextField'的任何遷移都將此遷移作爲[依賴項](https://docs.djangoproject.com/en/1.11/topics/migrations/#dependencies),就應該可以工作。 – Alasdair