您的位置:首页 > 其它

无线技巧:学会设置无线上网猫以及网卡

2011-11-20 09:10 337 查看
[PS: javaeye上的评论好像不能提交,只好另写一篇了]

 

昨天写的小工具需要把database.yml改来改去的,不能自动化,今天上午搞了一把,直接建立两个数据库连接,然后数据库对数据库copy

使用时将旧的数据库配置文件复制为 old_database.yml ,配置好新的 database.yml 就可以提交代码了,服务器上更新一下,然后运行 rake data:copy 就ok了

 

 

namespace :data do
desc "copy data from old database"
task :copy => 'db:migrate' do
config = YAML::load(ERB.new(IO.read('config/old_database.yml')).result)
$spec = config[Rails.env].inject({}) do |hash, value|
hash.update value[0].to_sym => value[1]
end
(ActiveRecord::Base.connection.tables - ["schema_migrations"]).each {|t|
Rails.logger.info "copy #{t}"
new_clazz, old_clazz = prepare_class t
old_clazz.all.each{|o|
new_o = new_clazz.new(o.attributes)
new_o.id = o.id
new_o.save!
}
}
end

private
def prepare_class table_name
class_name = table_name.camelize.singularize
eval %Q[
class #{class_name}Old < ActiveRecord::Base
establish_connection $spec
set_table_name '#{table_name}'
end
]
Object.send :remove_const, class_name rescue nil
eval("class #{class_name} < ActiveRecord::Base; end")
[class_name.constantize, "#{class_name}Old".constantize]
end
end

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: