[ipboard.rb] エラー: 重複キーの値が一意性制約 "import_ids_pkey" に違反しています (PG::UniqueViolation)

こんにちは。ipboard.rb を使用して IPB 3.4 フォーラムをインポートしようとしていますが、トピックのインポートでこのエラーが発生しました。

.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-mini-profiler-2.3.3/lib/patches/db/pg.rb:56:in `exec': ERROR:  duplicate key value violates unique constraint \"import_ids_pkey\" (PG::UniqueViolation)
DETAIL:  Key (val)=(discussion#2264) already exists.

SQL データベースから 2264 のトピックを削除してスクリプトを再度実行したところ、問題は解決しましたが、トピックが失われてしまいました :sob:。同じエラーで他にも 5 ~ 6 の重要なトピックも失われました。何が間違っているのでしょうか?これらのトピックをインポートするにはどうすればよいですか?

よろしくお願いします。

スクリプトが間違ったIDを使用しているのではないでしょうか?あるいは、現在使用しているバージョンがスクリプトの想定と異なるということはありませんか?

スクリプトを実行してからトピックを削除し、再度実行しようとしたということはありませんよね?

9つのトピックでのみこの問題が発生し、他はすべて正常です。常にデータベースを新規インストールから開始し、さまざまなSQLバックアップやさまざまなホストで確認しました。IPBoard(index、databaseなど)にエラーは見つかりませんでした。
理解できません。 :confused:

「いいね!」 1

あまり明白ではないことのように聞こえます。私の最善の推測は、. . . そうですね、最善の推測はありません。

クエリが何らかの方法でそれらのトピックを 2 回返しているのではないでしょうか?トピックを取得しているクエリに .where ID=123 を追加して、それが何らかの方法で 2 回取得されているかどうかを確認し、その理由を突き止めてみてはいかがでしょうか。

ipboard.rb ファイルに追加すべきですか?

スクリプト内のクエリを確認し、説明したとおりに手動で実行して、結果を確認します。

わかりました、見つけました!:sunglasses:
解決策を教えていただきありがとうございます。なぜだかわかりませんが、問題のあるトピックに関連するいくつかの投稿で new_topic = 1 というフィールドが設定されていました。

注:フィールドを手動で編集したところ、すべて問題なくなりました。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.