首页 > 代码库 > backup 备份数据

backup 备份数据

地址: http://tiroc.iteye.com/blog/1048042
 
Shell代码  收藏代码
  1. #首先,安装backup:  
  2.   
  3. $ gem install backup  
  4.   
  5. #在项目目录下执行:  
  6.   
  7. $ backup generate --databases=‘mysql‘ --archives --storages=‘ftp‘ --compressors=‘gzip‘ --path=‘config‘  

 

把config目录下生成的config.rb重命名为backup.rb,我的配置如下:

Ruby代码  收藏代码
  1. database_yml = File.expand_path("../config/database.yml",  __FILE__)  
  2. RAILS_ENV    = ENV[‘RAILS_ENV‘] || ‘development‘  
  3.       
  4. require ‘yaml‘  
  5. config = YAML.load_file(database_yml)  
  6.       
  7. Backup::Model.new(:my_backup, ‘my backup‘) do  
  8.       
  9.   archive :my_archive do |archive|  
  10.     archive.add File.expand_path("./public/system/")  
  11.   end  
  12.       
  13.   database MySQL do |db|  
  14.     db.name               = config[RAILS_ENV]["database"]  
  15.     db.username           = config[RAILS_ENV]["username"]  
  16.     db.password           = config[RAILS_ENV]["password"]  
  17.     db.host               = config[RAILS_ENV]["host"]  
  18.     db.port               = config[RAILS_ENV]["port"]  
  19.     db.socket             = config[RAILS_ENV]["socket"]  
  20.     db.skip_tables        = [‘sessions‘]  
  21.     db.additional_options = [‘--quick‘, ‘--single-transaction‘]  
  22.   end  
  23.       
  24.   store_with FTP do |server|  
  25.     server.username = ‘test‘  
  26.     server.password = ‘test‘  
  27.     server.ip       = ‘192.168.1.101‘  
  28.     server.port     = 21  
  29.     server.path     = ‘~/backups/‘  
  30.     server.keep     = 5  
  31.   end  
  32.       
  33.   compress_with Gzip do |compression|  
  34.     compression.best = true  
  35.     compression.fast = false  
  36.   end  
  37.       
  38. end  

 说明:
  1、public/system/下是由paperclip上传的图片
  2、FTP的配置信息最好也像数据库的配置那样,配置在另外一个yml文件中,并且这个文件不要放入版本控制系统中,我这只是一个测试所以无所谓

 

在lib/tasks目录下新建bakcup.rake如下:

Ruby代码  收藏代码
  1. namespace :db do  
  2.   desc "My Backup"  
  3.   task :backup do  
  4.     sh "backup perform --trigger my_backup --config_file ‘config/backup.rb‘"  
  5.   end  
  6. end  

 

 在项目根目录下执行这条命令进行备份:

Shell代码  收藏代码
  1. $ rake db:backup  

 

配合whenever自动备份效果更佳!

backup 备份数据