Das fehlschlagende Hinzufügen eines Themas verhindert dauerhaft, dass dieses Thema hinzugefügt wird.

Ich hatte gerade das hier in einem neuen Forum, ich habe versucht, ein Theme hinzuzufügen, was aufgrund einer der Dateierweiterungen fehlschlug. Ich habe dann vorübergehend * erlaubt, nur um zu versuchen, das Problem zu beheben, und dann bekam ich 500er, als ich versuchte, das Theme hinzuzufügen.

Nachricht

Fehler bei der Verarbeitung der gekaperten Antwort: ActiveRecord::RecordNotUnique : PG::UniqueViolation: FEHLER:  doppelte Schlüsselwert verletzt eindeutige Einschränkung „index_child_themes_on_parent_theme_id_and_child_theme_id“
DETAIL:  Schlüssel (parent_theme_id, child_theme_id)=(50, 35) existiert bereits.

Backtrace

rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:69:in `exec_params'
rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:69:in `exec_params'
activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `block (2 levels) in exec_no_cache'
activesupport-7.0.8/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
activesupport-7.0.8/lib/active_support/dependencies/interlock.rb:41:in `permit_concurrent_loads'
activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:767:in `block in exec_no_cache'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `synchronize'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'

Oh seltsam, ich schätze, wir räumen bei Fehlern nicht richtig auf.

Ist das reproduzierbar?

Ich werde das noch einmal überprüfen, aber die Schritte zur Reproduktion sollten wie folgt lauten:

  1. Finde ein Theme mit einer Datei, die standardmäßig nicht erlaubt ist (oder lösche alles aus der Liste der erlaubten Erweiterungen des Themes oder ähnliches).
  2. Versuche, das Theme zu importieren.
  3. Sieh, wie es wegen der Erweiterung fehlschlägt.
  4. Erlaube relevante Erweiterungen (oder einfach *).
  5. Versuche immer noch, das Theme zu importieren, und scheitere.

Das Theme benötigt möglicherweise auch einige Theme-Komponenten, ich bin mir nicht sicher.

Ich habe dies ursprünglich mit meinem eigenen Theme verursacht, aber soweit ich weiß, sollten die meisten Themes dies theoretisch verursachen können.

Bearbeitung:
Richtig, die einzige wirklich zwingende Bedingung hier scheint die blockierte Datei zu sein, sodass ein Theme mit einer benutzerdefinierten Schriftart, einem Logo usw. es auslösen kann, wenn Sie diese Dateierweiterung nicht zulassen. (Außerdem überschreiben Staff-Uploads anscheinend Theme-Uploads, stellen Sie also sicher, dass es in keiner der beiden Einstellungen erlaubt ist).

Hallo :wave:

Ich habe Ihr Theme überprüft, es scheint, dass das Problem bei Ihrer about.json liegt.

In den Komponenten gibt es eine Duplizierung.

Zeile 29 bis 38 :arrow_down_small:


Sie installieren jedoch ziemlich viele Komponenten gleichzeitig mit dem Theme. Sind diese alle notwendig? :slightly_smiling_face:

2 „Gefällt mir“

Ah, hoppla! Das ist mein Fehler, Entschuldigung.

Ich hatte nie wirklich vor, dass jemand anderes das Theme benutzt, es ist nur stark so abgestimmt, wie ich es mag, und es hat die Theme-Komponenten, die ich gerne verfügbar habe.