rake db:migrate 用法示例

先占个位置,近来一直用migrate,准备写一个关于这个的总结。
收集资料先

[url=http://iamappleman.iteye.com]AppleMan的六篇总结[/url]
运行rake db:migrate的时候从fixture里加载
相当于手动的命令

FIXTURES=config_params RAILS_ENV=production /usr/bin/rake db:YAML:restore


class InitConfig < ActiveRecord::Migration
def self.up
require 'rake'
rake = Rake::Application.new
ENV['FIXTURES'] = "config_params"
Rake::Task["db:YAML:restore"].invoke
end

def self.down
ConfigParam.delete_all()
end
end

实体完成性约束

class AddUniqueSiteProfile < ActiveRecord::Migration
def self.up
change_column("sites", "name", :string,:null => false )
change_column("profiles", "name", :string,:length =>50, :null => false)
add_index(:sites,[:name],:unique=>true)
add_index(:profiles,[:name],:unique=>true)
end

def self.down
change_column("sites","name",:string)
change_column("profiles","name", :string, :length => 50)
remove_index(:sites,:column=>:name)
remove_index(:profiles,:column=>:name)
end
end


增加一个字段并且添加一个值

class AddRegionIdToAnalyzer < ActiveRecord::Migration
def self.up
add_column :analyzers, :region_id, :integer,:default => 1
Analyzer.find(:all).each { |a|
a.region_id=1
a.save
}
end

def self.down
remove_column :analyzers, :region_id
end
end


添加索引

  def self.up
add_index "measurements", ["site_id","measure_id","channel_id", "dt"],:name => "meas_idx"
add_column "measures", "graph_flag", :boolean, :default => true
end

def self.down
remove_index "measurements",:name => "meas_idx"
remove_column "measures", "graph_flag"
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值