1

我正在尝试将一些 Rake Fixtures (rake db:fixtures:load) 加载到 MySql 数据库中,并且我看到 AutoIncrement 值的一些奇怪行为。通常,每个插入都会增加 1,这允许我定义/创建测试。(顺便说一句 - 从脚本正常创建/插入工作正常)。

但是,当我从固定装置加载时,id 字段被分配了一个大的随机数,并且加载后表上的 autoinc 值也是一个大数字(1054583385)。有没有其他人看过这个?

FWIW 这是在带有 MySql 5.0 的 Windows XP 上(我也用 MySql 5.1 测试过,发现问题并回滚到 5.0)。

其他人看到这个 - 这是一个已知的错误/问题吗?

TIA,

4

1 回答 1

1

这不是 rails 固定装置的异常行为。它是根据您的灯具标签设计的随机散列。请参阅文档

如果需要,您可以在您的设备中明确指定一个 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 回答