PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

SQLite fonctionne, mais la base de données migrée PostgreSQL provoque une ERREUR - Django 3.0

Je ne suis pas sûr de pouvoir vous aider, mais j'ai un Mac, j'utilise Django et j'ai eu quelques problèmes avec PostgreSQL, donc je vais partager mes idées.

Premièrement, il me semble que le problème est bien la connexion avec la base de données, pas le code. J'ai recherché votre erreur dans le code Django, il dit :

    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)
            )

Bien que je ne sois certainement pas un expert en middleware, Django ne reçoit apparemment pas de données de votre base de données.

J'ai déjà eu des problèmes avec différentes versions de PostgreSQL sur mon Mac. Vous pouvez vérifier dans /Library/PostgreSQL, j'ai deux répertoires (11 et 12), je dois donc faire attention à celui que j'utilise pour mes projets. Dans PgAdmin, vous pouvez voir les deux versions. Si vous avez d'anciennes versions ou si vous souhaitez réinstaller PostgreSQL (ce qui est assez radical mais vous donnerait une feuille blanche), il y a un bon manuel ici :https://medium.com/@zoefhall/effectively-uninstall-and-reinstall-psql-with-homebrew- sur-osx-fabbc45c5d9d . Vous pouvez vérifier la version que votre Django utilise en tapant dans votre Shell :

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

Pour moi, le résultat est 110005, ce qui se traduit par 11.0.5.

J'ai aussi eu plusieurs fois des problèmes avec psycopg2. L'installation de celui-ci est nécessaire lorsque vous configurez votre environnement virtuel avec Django, donc si vous avez réussi cela, alors cela s'est probablement bien passé. Le problème que j'ai eu était qu'il ne pouvait pas trouver le fichier de configuration, et la solution la plus simple pour moi était d'installer la version binaire psycopg2-binary. Mais si vous voulez une version spécifique de PostgreSQL sur votre Mac, alors vous devez mettre le fichier pg_config dans votre PATH, voir https://www.psycopg.org/docs/install.html .

C'est ce que j'ai appris, j'espère que cela vous aidera un peu.