Django-Modell mit Fremdschlüssel für Settings.AUTH_USER_MODEL schlägt fehl, wenn die App mithilfe von Postgres in eine aPython

Python-Programme
Anonymous
 Django-Modell mit Fremdschlüssel für Settings.AUTH_USER_MODEL schlägt fehl, wenn die App mithilfe von Postgres in eine a

Post by Anonymous »

Ich habe eine Umfrage-App, die als eigenständige App ohne Beanstandungen einwandfrei funktioniert (mit SQLite).
Aber wenn ich die Umfrage-App in eine andere integriere, die Postgres als Datenbank verwendet, kann sie die Migrationen der Umfrage-App nicht ausführen und beschwert sich, dass die Owner_ID (foreign_key to settings.AUTH_USER_MODEL) der Umfragetabelle Nullwerte enthält.
Django beschwert sich darüber „Spalte „owner_id“ der Beziehung „djf_surveys_survey“ enthält Nullwerte.
Die Postgres-Anweisung lautet:
```postgres
STATEMENT: ALTER TABLE „djf_surveys_survey“ ADD COLUMN „owner_id“ bigint NOT NULL CONSTRAINT
"djf_surveys_survey_owner_id_f1d8e19a_fk_users_user_id" REFERENZEN "users_user"("id")
VERSCHIEBBAR ZUERST VERSCHOBEN;
EINSCHRÄNKUNGEN SETZEN "djf_surveys_survey_owner_id_f1d8e19a_fk_users_user_id" IMMEDIATE
```
Die Fremdschlüsselzeile meines Modells ist:
```
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
```
Es ist eine einfache Fremdschlüsselbeziehung. Ich habe das noch nie zuvor gesehen und eine vernünftige Google-Suche hat nichts ergeben, was relevant erscheint. Ich verstehe nicht, warum das Postgres-SQL die Spalte als aufschiebbar erstellt und dann eine Einschränkung hinzufügt, die sie SOFORT macht...
Der vollständige Stack-Trace lautet wie folgt... (MTIA...:)
```python
mind_survey_app_local_django | Migrationen ausführen:
mind_survey_app_local_postgres | 31.12.2025 15:37:17.848 UTC [37] FEHLER: Spalte „owner_id“ der Beziehung „djf_surveys_survey“ enthält Nullwerte
mind_survey_app_local_postgres | 2025-12-31 15:37:17.848 UTC [37] STATEMENT: ALTER TABLE „djf_surveys_survey“ ADD COLUMN „owner_id“ bigint NOT NULL CONSTRAINT „djf_surveys_survey_owner_id_f1d8e19a_fk_users_user_id“ REFERENZEN „users_user“(„id“) DEFERRABLE INITIALLY DEFERRED; SET CONSTRAINTS „djf_surveys_survey_owner_id_f1d8e19a_fk_users_user_id“ SOFORT
mind_survey_app_local_django | Traceback (letzter Aufruf zuletzt):
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, Zeile 103, in _execute
mind_survey_app_local_django | return self.cursor.execute(sql)
mind_survey_app_local_django | ^^^^^^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/psycopg/cursor.py“, Zeile 97, in ausführen
mind_survey_app_local_django | raise ex.with_traceback(None)
mind_survey_app_local_django | psycopg.errors.NotNullViolation: Spalte „owner_id“ der Beziehung „djf_surveys_survey“ enthält Nullwerte
mind_survey_app_local_django |
mind_survey_app_local_django | Die obige Ausnahme war die direkte Ursache der folgenden Ausnahme:
mind_survey_app_local_django |
mind_survey_app_local_django | Traceback (letzter Aufruf zuletzt):
mind_survey_app_local_django | Datei „/app/manage.py“, Zeile 30, in
mind_survey_app_local_django | main()
mind_survey_app_local_django | Datei „/app/manage.py“, Zeile 26, in main
mind_survey_app_local_django | execute_from_command_line(sys.argv)
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/core/management/_init_.py“, Zeile 442, inexecute_from_command_line
mind_survey_app_local_django | Utility.execute()
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/core/management/_init_.py“, Zeile 436, in ausführen
mind_survey_app_local_django | self.fetch_command(subcommand).run_from_argv(self.argv)
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, Zeile 413, in run_from_argv
mind_survey_app_local_django | self.execute(*args, **cmd_options)
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, Zeile 459, in ausführen
mind_survey_app_local_django | Ausgabe = self.handle(*args, **Optionen)
mind_survey_app_local_django | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, Zeile 107, im Wrapper
mind_survey_app_local_django | res = handle_func(*args, **kwargs)
mind_survey_app_local_django | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/core/management/commands/migrate.py“, Zeile 357, im Handle
mind_survey_app_local_django | post_migrate_state = executor.migrate(
mind_survey_app_local_django | ^^^^^^^^^^^^^^^^^
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/db/migrations/executor.py“, Zeile 135, in migrate
mind_survey_app_local_django |. state = self._migrate_all_forwards(
mind_survey_app_local_django | ^^^^^^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django |. Datei „/usr/local/lib/python3.12/site-packages/django/db/migrations/executor.py“, Zeile 167, in _migrate_all_forwards
mind_survey_app_local_django |. state = self.apply_migration(
mind_survey_app_local_django | ^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/db/migrations/executor.py“, Zeile 255, in apply_migration
mind_survey_app_local_django |. state = migration.apply(state, schema_editor)
mind_survey_app_local_django | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django |. Datei „/usr/local/lib/python3.12/site-packages/django/db/migrations/migration.py“, Zeile 132, in apply
mind_survey_app_local_django |. operation.database_forwards(
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/db/migrations/operations/fields.py“, Zeile 110, in Database_forwards
mind_survey_app_local_django |. schema_editor.add_field(
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/db/backends/base/schema.py“, Zeile 768, in add_field
mind_survey_app_local_django |. self.execute(sql, params oder None)
mind_survey_app_local_django |. Datei „/usr/local/lib/python3.12/site-packages/django/db/backends/postgresql/schema.py“, Zeile 45, in Ausführung
mind_survey_app_local_django |. return super().execute(sql, params)
mind_survey_app_local_django |. ^^^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django |. Datei „/usr/local/lib/python3.12/site-packages/django/db/backends/base/schema.py“, Zeile 202, in ausführen
mind_survey_app_local_django |. Cursor.execute(sql, params)
mind_survey_app_local_django |. Datei „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, Zeile 122, in ausführen
mind_survey_app_local_django |. return super().execute(sql, params)
mind_survey_app_local_django | ^^^^^^^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django |. Datei „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, Zeile 79, in Ausführung
mind_survey_app_local_django |. return self._execute_with_wrappers(
mind_survey_app_local_django | ^^^^^^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django | Datei „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, Zeile 92, in _execute_with_wrappers
mind_survey_app_local_django |. return executor(sql, params, Many, context)
mind_survey_app_local_django |. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django | „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, Zeile 100, in _execute
mind_survey_app_local_django |. mit self.db.wrap_database_errors:
mind_survey_app_local_django | ^^^^^^^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django |. Datei „/usr/local/lib/python3.12/site-packages/django/db/utils.py“, Zeile 91, in _exit_
mind_survey_app_local_django |. raise dj_exc_value.with_traceback(traceback) from exc_value
mind_survey_app_local_django |. Datei „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, Zeile 103 _execute
mind_survey_app_local_django |. return self.cursor.execute(sql)
mind_survey_app_local_django |. ^^^^^^^^^^^^^^^^^^^^
mind_survey_app_local_django | „/usr/local/lib/python3.12/site-packages/psycopg/cursor.py“, Zeile 97, in „mind_survey_app_local_django |. raise ex.with_traceback(None)“ Spalte „owner_id“ der Beziehung „djf_surveys_survey“ enthält Nullwerte
mind_survey_app_local_flower |. Fehler: Keine Knoten haben innerhalb der Zeitbeschränkung geantwortet
mind_survey_app_local_django |. Anwenden von djf_surveys.0034_survey_owner_surveyselection_owner...
mind_survey_app_local_flower |. Sellerie-Arbeiter nicht verfügbar
mind_survey_app_local_celerybeat |

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post