t-e-d-d-y
(t-e-d-d-y)
1
こんにちは。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 のトピックを削除してスクリプトを再度実行したところ、問題は解決しましたが、トピックが失われてしまいました
。同じエラーで他にも 5 ~ 6 の重要なトピックも失われました。何が間違っているのでしょうか?これらのトピックをインポートするにはどうすればよいですか?
よろしくお願いします。
pfaffman
(Jay Pfaffman)
2
スクリプトが間違ったIDを使用しているのではないでしょうか?あるいは、現在使用しているバージョンがスクリプトの想定と異なるということはありませんか?
スクリプトを実行してからトピックを削除し、再度実行しようとしたということはありませんよね?
t-e-d-d-y
(t-e-d-d-y)
3
9つのトピックでのみこの問題が発生し、他はすべて正常です。常にデータベースを新規インストールから開始し、さまざまなSQLバックアップやさまざまなホストで確認しました。IPBoard(index、databaseなど)にエラーは見つかりませんでした。
理解できません。 
「いいね!」 1
pfaffman
(Jay Pfaffman)
4
あまり明白ではないことのように聞こえます。私の最善の推測は、. . . そうですね、最善の推測はありません。
クエリが何らかの方法でそれらのトピックを 2 回返しているのではないでしょうか?トピックを取得しているクエリに .where ID=123 を追加して、それが何らかの方法で 2 回取得されているかどうかを確認し、その理由を突き止めてみてはいかがでしょうか。
t-e-d-d-y
(t-e-d-d-y)
5
ipboard.rb ファイルに追加すべきですか?
pfaffman
(Jay Pfaffman)
6
スクリプト内のクエリを確認し、説明したとおりに手動で実行して、結果を確認します。
t-e-d-d-y
(t-e-d-d-y)
7
わかりました、見つけました!
解決策を教えていただきありがとうございます。なぜだかわかりませんが、問題のあるトピックに関連するいくつかの投稿で new_topic = 1 というフィールドが設定されていました。
注:フィールドを手動で編集したところ、すべて問題なくなりました。
「いいね!」 1
system
(system)
クローズされました:
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.