Mariano Kamp
2006-Jan-08 06:11 UTC
[Rails] Migration doesn''t seem to preserve create_table options in schema
Hi, I have the following migration (abbreviated): class Initial < ActiveRecord::Migration def self.up create_table :messages, :options => ''ENGINE=MyISAM'', :force => true do |t| t.column :id, :integer, :null => false t.column :external_id, :string, :null => false t.column :recipients_count, :integer, :default => 0 end end def self.down drop_table :messages end end When running migrate it creates the table and the schema, but it doesn''t preserve the ":options" in the test environment... ActiveRecord::Schema.define(:version => 1) do create_table "messages", <NO :OPTIONS IN HERE>:force => true do |t| t.column "external_id", :string, :default => "", :null => false t.column "from", :string, :default => "", :null => false t.column "subject", :string end end The funny thing is that this happens with the test database, not with development. In development these options are used to create the database: mysql> show create table messages; ... messages | CREATE TABLE `messages` ( `id` int(11) NOT NULL auto_increment, `external_id` varchar(255) NOT NULL, `from` varchar(255) NOT NULL, `subject` varchar(255) default NULL, `body` tinytext, `created_on` datetime default NULL, `recipients_count` int(11) default ''0'', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ... In test I still see "InnoDB"... Deleting the schema.rb didn''t help. environment.rb contains this: config.active_record.schema_format = :ruby test.rb doesn''t seem to contain anything that overrides that. I am also wondering when the migration for test occurs? After rake migrate nothing seems to happen to the test database, but while running my tests with rake it seems to also do the migration. Am I doing something wrong? Cheers, Mariano -------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060108/fc053a6e/attachment-0001.html