sql >> Database teknologi >  >> RDS >> PostgreSQL

SQLite virker, men PostgreSQL migreret database forårsager FEJL - Django 3.0

Ikke sikker på, jeg kan hjælpe, men jeg har en Mac, bruger Django og havde nogle problemer med PostgreSQL, så jeg deler mine ideer.

For det første forekommer det mig, at problemet faktisk er forbindelsen til databasen, ikke koden. Jeg har slået din fejl op i Django-koden, den siger:

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

Selvom jeg bestemt ikke er ekspert i middleware, modtager Django tilsyneladende ikke data fra din database.

Jeg havde engang problemer med forskellige versioner af PostgreSQL på min Mac. Du kan tjekke ind /Library/PostgreSQL, jeg har to mapper (11 og 12), så jeg skal passe på, hvilken jeg bruger til mine projekter. I PgAdmin kan du se begge versioner. Hvis du har gamle versioner eller ønsker at geninstallere PostgreSQL (hvilket er ret drastisk, men ville give dig et rent ark), er der en god manual her:https://medium.com/@zoefhall/effectively-uninstall-and-reinstall-psql-with-homebrew- on-osx-fabbc45c5d9d . Du kan tjekke den version, som din Django bruger, ved at indtaste din Shell:

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

For mig er resultatet 110005, hvilket oversættes til 11.0.5.

Jeg har også haft problemer med psycopg2 flere gange. Installation af det er nødvendigt, når du opsætter dit virtuelle miljø med Django, så hvis du klarede det, så gik det sandsynligvis ok. Det problem, jeg havde, var, at den ikke kunne finde konfigurationsfilen, og den nemmeste løsning for mig var at installere den binære version psycopg2-binary. Men hvis du vil have en specifik version af PostgreSQL på din Mac, så skal du lægge pg_config-filen i din PATH, se https://www.psycopg.org/docs/install.html .

Det er hvad jeg har lært, jeg håber det hjælper dig lidt.



  1. JDBC batch operationsforståelse

  2. Vis indlæsningsbillede, mens PHP kører

  3. Send ID'er til pre_get_posts-forespørgsel i funktion

  4. MariaDB numeriske funktioner (fuld liste)