I'm trying to load some Rake Fixtures (rake db:fixtures:load) into a
MySql database and I'm seeing some weird behaviour with AutoIncrement
values. Normally this goes up by 1 for each insert which allows me to
define/create tests. (BTW - normal create/insert from script works
correctly).
However when I load from fixtures the id field is assigned a large
random number and the autoinc value on the table is also a large
number (1054583385) after the load. Has anyone else seen this?
FWIW this is on Windows XP with MySql 5.0 (I also tested with MySql
5.1, found the problem and rolled back to 5.0).
Anybody else seen this - Is this a known bug/issue?
Just tried the same think and I was surprised as you. I do not think
that it is normal behavior.
It is really weird. And even sometimes it works as I wish and second
time (after rake db:fixture:load) not.
Just tried the same think and I was surprised as you. I do not think
that it is normal behavior.
It is really weird. And even sometimes it works as I wish and second
time (after rake db:fixture:load) not.
As Marnen said this is normal behaviour. If an id value is explicitly
provided for a record in the fixture data then that value will be
used, otherwise a value is calculated from the name of the record (ie
the heading line of the record in the fixture). This allows automatic
linking of associated record. So if A has_many Bs and B belongs_to A
then in A fixture:
a_1:
field_1: data
field_2: data
and in B fixture
b_1:
this makes it much easier to link records than manually setting up all
the id values