pgcryto拡張機能をインストールした私のDjangoアプリケーションにPostgreSQLデータベースを使用しています。プロダクションサーバーでは、手動でユーザーを作成し、CREATE EXTENSION pgcrypto;
を実行して拡張機能をインストールします。私は私のモデルがpgcrypto_expressions
からEncryptedTextField
フィールドを使用しているので、それが失敗した./manage.py test
を実行すると(それが作成されたすべてのデータベースに対して明示的に有効にする必要があるため)pgcryptoが失敗したDjangoテスト
しかし、自動的に作成されますテストデータベースは、拡張子が自然にインストールされていません。 Djangoがテストデータベースをセットアップして移行を開始するまでの間に、どのようにコードやコマンドを挿入できますか?
また、この拡張機能をPostgreSQLでグローバルに有効にする方法はありますか?
エクステンションをインストールするマイグレーションを作成できます。[docs]の例を参照してください(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/ja/1.11/topics/migrations/#dependencies)として持っている限り、それは動作するはずです。 – Alasdair