SW Versions: Rails 1.1.2, Ruby 1.8.4, and MySQL 5.0.18
To reproduce, (1) create a table into the development datbase by invoking the command rake db:migrate given the following db/migrate/001_create_news_items.rb
class CreateNewsItems < ActiveRecord::Migration
def self.up
create_table(
:news_items,
:options => "engine=InnoDB default charset=utf8") do |t|
t.column :title, :string
t.column :excerpt, :string
t.column :body, :text
t.column :lock_version, :integer, :default => 0
t.column :user_id, :integer
t.column :updated_at, :datetime
t.column :created_at, :datetime
end
# Customize the id column
change_column(:news_items, :id, :string, :limit => 32, :null => false)
end
def self.down
drop_table(:news_items)
end
end
(2) rake db:schema:dump gets an incomplete db/schema.rb
create_table "news_items", :force => true do |t|
t.column "title", :string
t.column "excerpt", :string
t.column "body", :text
t.column "lock_version", :integer, :default => 0
t.column "user_id", :integer
t.column "updated_at", :datetime
t.column "created_at", :datetime
end
Both id and charset are misconfigured in a resulting table:
CREATE TABLE `news_items` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) default NULL,
`excerpt` varchar(255) default NULL,
`body` text,
`lock_version` int(11) default '0',
`user_id` int(11) default NULL,
`updated_at` datetime default NULL,
`created_at` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1