Ich verwende eine PostgreSQL-Datenbank für meine Django-App mit pgcryto-Erweiterung installiert. Auf dem Produktionsserver erstelle ich manuell einen Benutzer und führe dann CREATE EXTENSION pgcrypto;
aus, um die Erweiterung zu installieren. JedochDjango-Test mit pgcrypto fehlgeschlagen
wenn ich ./manage.py test
laufen nicht, weil meine Modelle die EncryptedTextField
Feld von pgcrypto_expressions
verwenden, ist die Testdatenbank, die automatisch erstellt wird nicht über die Verlängerung natürlich installiert (da es aktiviert werden muss explizit für jede Datenbank erstellt). Wie kann ich Code/Befehle zwischen dem Zeitpunkt, zu dem Django meine Testdatenbank einrichtet, und den Migrationen beginnen?
Oder, wie kann ich diese Erweiterung global in PostgreSQL aktivieren?
Sie können eine Migration erstellen, die die Erweiterung installiert - siehe das Beispiel [in der Dokumentation] (https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/operations/#creating-extension-using -migrationen). – Alasdair
@Alasdair Toll, genau das, was ich brauche .. Ich hatte einen kurzen Blick, aber da ich noch ein Noob bin, wo gebe ich diesen Code? Irgendeine Datei und es wird es aufnehmen? Muss ich es in die 001 _... Migrationsdatei einfügen (aber das wird dann jedes Mal überschrieben) – strangetimes
Ich verstehe nicht, warum es überschrieben wird. Es kann in die Migrationsdatei für jede App, die Sie möchten, gehen. Idealerweise fügen Sie sie als '0001_initial'-Migration für eine App hinzu. Solange alle Migrationen, die 'EncryptedTextField' verwenden, diese Migration als [Abhängigkeit] (https://docs.djangoproject.com/en/1.11/topics/migrations/#dependencies) haben, sollte es funktionieren. – Alasdair