PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

SQLite funktioniert, aber die migrierte PostgreSQL-Datenbank verursacht ERROR - Django 3.0

Ich bin mir nicht sicher, ob ich helfen kann, aber ich habe einen Mac, verwende Django und hatte einige Probleme mit PostgreSQL, also werde ich meine Ideen teilen.

Erstens scheint mir das Problem tatsächlich die Verbindung mit der Datenbank zu sein, nicht der Code. Ich habe Ihren Fehler im Django-Code nachgeschlagen, er sagt:

    def _get_response(self, request):
        """
        Resolve and call the view, then apply view, exception, and
        template_response middleware. This method is everything that happens
        inside the request/response middleware.
        """
        ...

        # Complain if the view returned None (a common error).
        if response is None:
            ...

            raise ValueError(
                "The view %s.%s didn't return an HttpResponse object. It "
                "returned None instead." % (callback.__module__, view_name)
            )

Obwohl ich sicherlich kein Experte für Middleware bin, empfängt Django anscheinend keine Daten von Ihrer Datenbank.

Ich hatte einmal Probleme mit verschiedenen Versionen von PostgreSQL auf meinem Mac. Sie können in /Library/PostgreSQL einchecken, ich habe zwei Verzeichnisse (11 und 12), also muss ich aufpassen, welches ich für meine Projekte verwende. In PgAdmin können Sie beide Versionen sehen. Wenn Sie alte Versionen haben oder PostgreSQL neu installieren möchten (was ziemlich drastisch ist, aber Ihnen ein sauberes Blatt geben würde), gibt es hier eine gute Anleitung:https://medium.com/@zoefhall/effektiv-uninstallieren-und-neuinstallieren-psql-mit-homebrew- on-osx-fabbc45c5d9d . Sie können die Version überprüfen, die Ihr Django verwendet, indem Sie Folgendes in Ihre Shell eingeben:

python3 manage.py shell -c "from django.db import connection; print(connection.cursor().connection.server_version)"

Für mich ist das Ergebnis 110005, was 11.0.5 bedeutet.

Ich hatte auch mehrmals Probleme mit psycopg2. Die Installation ist erforderlich, wenn Sie Ihre virtuelle Umgebung mit Django einrichten. Wenn Sie das also geschafft haben, ist das wahrscheinlich in Ordnung gelaufen. Das Problem, das ich hatte, war, dass es die Konfigurationsdatei nicht finden konnte, und die einfachste Lösung für mich war, die Binärversion psycopg2-binary zu installieren. Wenn Sie jedoch eine bestimmte Version von PostgreSQL auf Ihrem Mac möchten, müssen Sie die pg_config-Datei in Ihren PATH einfügen, siehe https://www.psycopg.org/docs/install.html .

Das habe ich gelernt, ich hoffe es hilft dir ein wenig.