Vielen Dank für Ihre Antwort, aber das einfache Entfernen von Umfragen ist keine Lösung für doppelte Datensätze. Ich gehe davon aus, dass der Import von phpbb3 irgendwo am Anfang fehlerhaft war und diese Datensätze erstellt hat. Sie sind gültig, sie haben nur doppelte UUIDs, da der ursprüngliche Import dies nicht überprüft hat.
Wie auch immer, die Lösung für jeden, der auf dieses Problem stößt, ist Folgendes zu tun:
- Ändern Sie problematische Datensätze in der Tabelle
post_custom_fields, um sie aus dem Weg zu räumen. Es ist besser, dies so zu tun, als auf den Wiederaufbau zu warten, der nur wenige Minuten dauert, nur um dann einen weiteren Fehler zu sehen.
update post_custom_fields set name = 'polls' where name = 'polls_bak';
update post_custom_fields set name = 'polls-votes' where name = 'polls-votes_bak';
-
Führen Sie den Wiederaufbau der Anwendung, das Update oder was auch immer der Benutzer zu tun versucht, aus.
-
Verbinden Sie sich mit dem live laufenden Container, nachdem alles aufgebaut und gestartet ist.
-
Ändern Sie die Umfragen zurück zur ursprünglichen Benennung:
update post_custom_fields set name = 'polls'_bak' where name = 'polls';
update post_custom_fields set name = 'polls-votes_bak'' where name = 'polls-votes';
- Führen Sie die Migration, die das Problem verursacht, manuell innerhalb des App-Containers aus. Beachten Sie, dass VERSION die Nummer im Dateinamen der Migration ist.
Entfernen Sie zuerst die Migration, dies tut nichts, da die Down-Methode nichts an der Datenbank ändert:
rake db:migrate:down VERSION=20180820080623
Führen Sie die Migration aus und suchen Sie nach dem ersten Fehler:
rake db:migrate:up VERSION=20180820080623
- Suchen Sie in der Tabelle mit einer Datenbank-GUI zur einfacheren Bearbeitung nach der UUID, die das Problem verursacht:
select from post_custom_fields where value like '%your_UUID%';
-
Nun der knifflige Teil. Die UUID ist der Bezeichner der Umfrageantwort/Option. Was Sie tun müssen, ist, diese UUID in der Zeile
pollzu ändern, sagen wir von731ef6901e968fc3f4e785fcb9e9abe8zu731ef6901e968fc3f4e785fcb9e9abe9. Es ist höchst unwahrscheinlich, dass Sie eine andere wie diese in Ihrem System finden werden. Aber nachdem Sie dies getan haben, müssen Sie auch die entsprechende inpoll-votesfinden und sie zu Ihrer neuen ändern. Auf diese Weise verlieren Sie keine Stimmen oder Antworten. -
Führen Sie die Migration erneut aus und suchen Sie nach dem nächsten Fehler:
rake db:migrate:up VERSION=20180820080623
- Wiederholen Sie diesen Vorgang, bis die Migration abgeschlossen ist und alle Umfragen in Ihre neuen Tabellen migriert wurden.
Ich bin enttäuscht, dass sich niemand die Mühe gemacht hat, zu antworten und zu erklären, was diese UUID ist und worauf sie sich bezieht. Ich weiß, es ist Open Source und ich weiß, es ist Jahre her, seit es committet wurde, ich beschwere mich nicht, aber eine gewisse Hilfe von Leuten, die tatsächlich Commits im offiziellen Repo machen, wäre sehr willkommen.
Das Problem wurde gelöst, also frohe Tage.
Danke!