1

フィクスチャのテストデータ(2行/テーブルのみ)で約100行/テーブルの開発データベースを誤って上書きした後、各モデルで作成された次の新しいオブジェクトはid=897600で開始しました。

何がこれを引き起こした可能性がありますか?これは、データベースに表示されない897500のテストオブジェクトを作成したことを意味しますか?これが私が懸念すべきことであるかどうかはわかりませんが、フィードバックをいただければ幸いです。

Rails3.2でPostgreSQL9.1を使用しています

私の質問を明確にするのに役立つ追加情報を教えてください。ありがとう!

4

1 に答える 1

1

Rails フィクスチャは、 record を決定するためにフィクスチャ キーのハッシュを使用しますid。これにより、すべての優れた機能が可能になります(この機能が導入された頃の古い記事)。テストを実行するために、テスト例で作成されたレコードはこれらのハッシュ ID と競合する必要がないため、フィクスチャと接触するテーブルごとActiveRecordに PK シーケンスをリセットします。max(id)+1PK が のような数になる方法は次のとおり897600です。

于 2012-08-23T19:15:45.810 に答える