Forum: Ruby on Rails Migration doesn't seem to preserve create_table options in s

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
838869251cf09420cc80a9e008adddc1?d=identicon&s=25 Mariano Kamp (Guest)
on 2006-01-08 07:14
(Received via mailing list)
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
This topic is locked and can not be replied to.