Railsが新しいレコードに一意のIDを割り当てていない

グレイオキシド

今朝、db:seed:dumpを使用してデータベースを復元しました単純なrakeファイルを実行しようとすると、次のエラーが発生します。

ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "reports_pkey"
DETAIL:  Key (id)=(1) already exists.
: INSERT INTO "reports" ("worker_id", "report_month", "status", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id"
/path/to/app/dir/lib/tasks/produce.rake:22:in `block (3 levels) in <top (required)>'
/path/to/app/dir/lib/tasks/produce.rake:17:in `each'
/path/to/app/dir/lib/tasks/produce.rake:17:in `block (2 levels) in <top (required)>'

Caused by:
PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "reports_pkey"
DETAIL:  Key (id)=(1) already exists.
/path/to/app/dir/lib/tasks/produce.rake:22:in `block (3 levels) in <top (required)>'
/path/to/app/dir/lib/tasks/produce.rake:17:in `each'
/path/to/app/dir/lib/tasks/produce.rake:17:in `block (2 levels) in <top (required)>'
Tasks: TOP => produce:report_month
(See full trace by running task with --trace)

私はこのrakeタスクを何十回もエラーなしで実行しましたが、唯一の違いは最近バックアップを展開したことです。

エラーを読み取ると、Railsはすでに占有されているID間隔を1に戻そうとしているようです。

seed:dump gemは、次のような構造を持つseeds.rbファイルを作成します。

Note.create!([
  {id: 1, notable_id: 51, notable_type: "Worker", body: "Some sort of text here", created_at: "2017-10-27 00:27:21", updated_at: "2017-10-27 00:27:21"},
  {id: 2, notable_id: 68, notable_type: "Worker", body: "another note", created_at: "2017-11-11 18:43:13", updated_at: "2017-11-11 18:43:13"}
])

誰かがこれに遭遇したことがありますか?修正する方法はありますか?

グレイオキシド

回答:データベースのバックアップにdb:seed:dumpgemを使用しないでください。少なくとも私がそれを使っていた方法ではありません。

pg_dumpコマンドで作成した以前のバックアップから復元することになりました。

コメント投稿者の皆さん、ありがとうございました

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

R:増分列に基づいて、データフレームに一意のIDを割り当てます

分類Dev

Entity Frameworkは、いくつかの列の一意の値のセットに基づいて重複レコードをチェックしてから、新しいレコードを追加する必要があります

分類Dev

レコードを一意のIDに基づいて異なる値を持つ2つのレコードに分割します

分類Dev

Factory_Girlが一意のレコードを生成していません

分類Dev

外部キーを使用するか、一意のIDを割り当てる方がよいでしょうか。

分類Dev

2つの列に基づいて一意のIDを割り当てます

分類Dev

Rails:兄弟レコードに基づいて一意の自動インクリメンタルIDを作成します

分類Dev

否定レコードがないテーブル内の一意のレコードを検索しようとしています

分類Dev

新しいレコードと既存のレコードの一意のIDを生成する

分類Dev

Pythonを使用して、列ごとに各行の一意のコードの新しい列を作成する

分類Dev

JavaScriptコードの各divに一意のIDを割り当てるにはどうすればよいですか?

分類Dev

Rループを使用しないレコードにIDを割り当てる

分類Dev

他の列の一意の値ごとに新しい値を割り当てます

分類Dev

MySQL-特定の値を含まないすべての一意のレコードを選択します

分類Dev

テキスト列に新しい一意のint列を割り当てます

分類Dev

レコードが重複しているかどうかを確認する一般的な方法はありますか?データベースの一意性制約によってチェックする必要があります

分類Dev

4桁以内の繰り返しのない一連の数字に基づいて疑似一意の数字(コード)を生成する

分類Dev

2つの列のいずれかの値に基づいて一意のIDを割り当てます

分類Dev

Grailsでgspページを操作しているときに、一意でないIDを持つ2つの要素が見つかりました

分類Dev

Elasticsearchがシャードを(新しい)ノードに割り当てない

分類Dev

PHPの一意のユーザーIDコードが機能しない

分類Dev

特定の列に基づいてCSVで一意のレコードを識別します

分類Dev

レコードが一意であることがわかっている場合に、一意性違反について不平を言うクエリ

分類Dev

コンパレータを使用してConcurrentSkipListSetのは、新しい一意の値を追加しません

分類Dev

2つの一意のレコードのセットを比較し、欠落しているレコードのIDを取得します

分類Dev

異なるインデックスを持つ一意の値に基づいて、1番目のデータフレームから2番目のデータフレームに値を更新することにより、各行を繰り返します。それ以外の場合は、新しいIDを追加して割り当てます。

分類Dev

最大double値に基づいてRDD [String、String、Double]で一意のレコードを検索します

分類Dev

複数の一意でない列にまたがる一意のレコード

分類Dev

RoR / Postgres-2列の一意のインデックスでエラーが発生しました。レコードがなくても、「重複するキー値が一意の制約に違反している」

Related 関連記事

  1. 1

    R:増分列に基づいて、データフレームに一意のIDを割り当てます

  2. 2

    Entity Frameworkは、いくつかの列の一意の値のセットに基づいて重複レコードをチェックしてから、新しいレコードを追加する必要があります

  3. 3

    レコードを一意のIDに基づいて異なる値を持つ2つのレコードに分割します

  4. 4

    Factory_Girlが一意のレコードを生成していません

  5. 5

    外部キーを使用するか、一意のIDを割り当てる方がよいでしょうか。

  6. 6

    2つの列に基づいて一意のIDを割り当てます

  7. 7

    Rails:兄弟レコードに基づいて一意の自動インクリメンタルIDを作成します

  8. 8

    否定レコードがないテーブル内の一意のレコードを検索しようとしています

  9. 9

    新しいレコードと既存のレコードの一意のIDを生成する

  10. 10

    Pythonを使用して、列ごとに各行の一意のコードの新しい列を作成する

  11. 11

    JavaScriptコードの各divに一意のIDを割り当てるにはどうすればよいですか?

  12. 12

    Rループを使用しないレコードにIDを割り当てる

  13. 13

    他の列の一意の値ごとに新しい値を割り当てます

  14. 14

    MySQL-特定の値を含まないすべての一意のレコードを選択します

  15. 15

    テキスト列に新しい一意のint列を割り当てます

  16. 16

    レコードが重複しているかどうかを確認する一般的な方法はありますか?データベースの一意性制約によってチェックする必要があります

  17. 17

    4桁以内の繰り返しのない一連の数字に基づいて疑似一意の数字(コード)を生成する

  18. 18

    2つの列のいずれかの値に基づいて一意のIDを割り当てます

  19. 19

    Grailsでgspページを操作しているときに、一意でないIDを持つ2つの要素が見つかりました

  20. 20

    Elasticsearchがシャードを(新しい)ノードに割り当てない

  21. 21

    PHPの一意のユーザーIDコードが機能しない

  22. 22

    特定の列に基づいてCSVで一意のレコードを識別します

  23. 23

    レコードが一意であることがわかっている場合に、一意性違反について不平を言うクエリ

  24. 24

    コンパレータを使用してConcurrentSkipListSetのは、新しい一意の値を追加しません

  25. 25

    2つの一意のレコードのセットを比較し、欠落しているレコードのIDを取得します

  26. 26

    異なるインデックスを持つ一意の値に基づいて、1番目のデータフレームから2番目のデータフレームに値を更新することにより、各行を繰り返します。それ以外の場合は、新しいIDを追加して割り当てます。

  27. 27

    最大double値に基づいてRDD [String、String、Double]で一意のレコードを検索します

  28. 28

    複数の一意でない列にまたがる一意のレコード

  29. 29

    RoR / Postgres-2列の一意のインデックスでエラーが発生しました。レコードがなくても、「重複するキー値が一意の制約に違反している」

ホットタグ

アーカイブ