想要尝试下rails db:migrate ,看看这样管理数据库的创建脚本和升级脚本如何,于是在rails的网站找到一个例子:
class CreateSystemSettings < ActiveRecord::Migration
def self.up
create_table :system_settings, :force => true do |t|
t.string :name
t.string :label
t.text :value
t.string :type
t.integer :position
end
SystemSetting.create :name => "notice", :label => "Use notice?", :value => 1
end
def self.down
drop_table :system_settings
end
end
我的执行步骤是这样的:
1. 运行instantrails,
2. 打开 instantrails提供的ruby console内执行
3. 执行 ruby script/generate migration CreateSystemSetting ,修改001__CreateSystemSetting.rb
4. rake db:migrate ,但是它总是报错,"SystemSetting constant undefined "
原因是还没有生成model,只要 ruby script/generate model SystemSetting ,就ok了。
学会了,下一步做serial的model和migration测试。
同时也了解到rails development environment。我从instantrails 的相应按钮点开的。
ruby有irb,可以让代码交互运行,更快的查看代码执行的效果
rails 有 rails development environment ,道理相同。
在 rails development environment 内可以直接执行比如 SystemSetting.create :name => "notice", :label => "Use notice?", :value => 1,不需要完整的require之类的,它都已经建立完毕了。当然 drop_table不能直接执行,因为它来自 ActiveRecord::Migration ,但是可以通过ActiveRecord::Migration.drop_table 来跑。
参考:
1. 不错的turorials :http://www.tutorialspoint.com/ruby-on-rails-2.1/rails-migrations.htm
2. 这里还有一个视频:http://www.rubyonrails.org/screencasts,也很不错。