I'm trying to run rake test:units
and I keep getting this:
Mysql::Error: Duplicate entry '2147483647' for key 1: INSERT INTO `ts_schema_migrations` (version) VALUES ('20081008010000')
The "ts_
" is there because I have ActiveRecord::Base.table_name_prefix
set. I'm confused because there is no value '20081008010000' already in the table, and there is no migration with the value '2147483647' (though the value does appear in the table).
In Rails' schema_statments.rb
, there is the following:
def initialize_schema_migrations_table
sm_table = ActiveRecord::Migrator.schema_migrations_table_name
unless tables.detect { |t| t == sm_table }
create_table(sm_table, :id => false) do |schema_migrations_table|
schema_migrations_table.column :version, :string, :null => false
end
...
In my development database, ts_schema_migrations.version
is a VARCHAR
. In test, though it's an INTEGER
. I've dropped the tables and re-run the migrations (and/or a rake db:schema:load RAILS_ENV=test
) several times. No changes.
Is something wrong with my MySQL adapter?