1

いくつかの Rake フィクスチャ (rake db:fixtures:load) を MySql データベースにロードしようとしていますが、AutoIncrement 値で奇妙な動作が見られます。通常、これは挿入ごとに 1 ずつ増加し、テストの定義/作成を可能にします。(ところで-スクリプトからの通常の作成/挿入は正しく機能します)。

ただし、フィクスチャからロードすると、id フィールドに大きな乱数が割り当てられ、テーブルの autoinc 値もロード後に大きな数 (1054583385) になります。他の誰かがこれを見たことがありますか?

FWIW これは、MySql 5.0 を搭載した Windows XP 上にあります (MySql 5.1 でテストしたところ、問題が見つかり、5.0 にロールバックされました)。

他の誰かがこれを見ました - これは既知のバグ/問題ですか?

ティア、

4

1 に答える 1

1

これは、レールフィクスチャの異常な動作ではありません。これは、フィクスチャのラベルに基づいてランダムなハッシュを設計することによるものです。ドキュメントを参照してください。

必要に応じて、フィクスチャでIDを明示的に指定できます。

id: 1

しかし、それは本当に重要ですか?固定具は、テストに使用することを目的としています。関係が存在する限り、オブジェクトのIDは関係ありません。

Fixturesクラスの関連関数は次のとおりです。

# Returns a consistent identifier for +label+. This will always 
# be a positive integer, and will always be the same for a given
# label, assuming the same OS, platform, and version of Ruby.
def self.identify(label)
  label.to_s.hash.abs
end
于 2009-07-31T23:04:57.200 に答える