Я пытаюсь запустить rake test:units
, и я продолжаю получать это:
Mysql::Error: Duplicate entry '2147483647' for key 1: INSERT INTO `ts_schema_migrations` (version) VALUES ('20081008010000')
"ts_
" есть, потому что у меня установлен ActiveRecord::Base.table_name_prefix
. Я в замешательстве, потому что в таблице уже нет значения «20081008010000», и нет миграции со значением «2147483647» (хотя это значение действительно отображается в таблице).
В Rails 'schema_statments.rb
есть следующее:
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
...
В моей базе данных для разработки ts_schema_migrations.version
- это VARCHAR
. В тесте, хотя это INTEGER
. Я отбросил таблицы и перезапустил миграцию (и / или rake db:schema:load RAILS_ENV=test
) несколько раз. Без изменений.
Что-то не так с моим адаптером MySQL?