PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

SQLite funciona, mas banco de dados migrado PostgreSQL causa ERRO - Django 3.0


Não tenho certeza se posso ajudar, mas tenho um Mac, uso Django e tive alguns problemas com o PostgreSQL, então vou compartilhar minhas ideias.

Primeiro, parece-me que o problema é de fato a conexão com o banco de dados, não o código. Eu procurei seu erro no código Django, ele diz:
    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)
            )

Embora eu certamente não seja um especialista em middleware, aparentemente o Django não está recebendo dados do seu banco de dados.

Certa vez, tive problemas com diferentes versões do PostgreSQL no meu Mac. Você pode verificar em /Library/PostgreSQL, eu tenho dois diretórios (11 e 12), então tenho que ter cuidado com qual uso para meus projetos. No PgAdmin você pode ver as duas versões. Se você tem versões antigas ou deseja reinstalar o PostgreSQL (o que é bastante drástico, mas lhe daria uma folha limpa), há um bom manual aqui:https://medium.com/@zoefhall/effectively-uninstall-and-reinstall-psql-with-homebrew- on-osx-fabbc45c5d9d . Você pode verificar a versão que seu Django está usando digitando em seu Shell:
python3 manage.py shell -c "from django.db import connection; print(connection.cursor().connection.server_version)"

Para mim o resultado é 110005, que se traduz em 11.0.5.

Eu também tive problemas com o psycopg2 várias vezes. A instalação dele é necessária quando você configura seu ambiente virtual com o Django, então se você conseguiu isso, então provavelmente deu certo. O problema que tive foi que ele não conseguiu encontrar o arquivo de configuração, e a solução mais fácil para mim foi instalar a versão binária psycopg2-binary. Mas se você quiser uma versão específica do PostgreSQL no seu Mac, então você precisa colocar o arquivo pg_config no seu PATH, veja https://www.psycopg.org/docs/install.html .

Isso é o que eu aprendi, espero que ajude você um pouco.