`
ghost138
  • 浏览: 45971 次
  • 性别: Icon_minigender_1
  • 来自: ...重庆
最近访客 更多访客>>
社区版块
存档分类
最新评论

rails mysql数据库备份

    博客分类:
  • ROR
阅读更多
在#{RAILS_ROOT}/lib/tasks下建立db.rake,把mccxj给的代码拷贝进去,然后按Alt+Shift+R调出运行Rake任务的对话框,点“刷新任务”按钮,列表中会出来“db:backup:create”/“db:backup:destroy”/“db:backup:rebuild”三个任务,单击相应的任务就可以备份和恢复数据库。

下面示例说明如何在RAILS应用网页中备份和恢复MySQL数据库。
(1)建立控制器
Ruby代码
generate controller dbctl index backup restore  


(2)编写Dbctl控制器代码
Ruby代码
class DbctlController  :index 
  end 
 
  def restore 
    %x{rake db:backup:rebuild} 
    redirect_to :action => :index 
  end 
 
end 

(3)编写views/Dbctl/index.html.erb页面代码
Ruby代码
<h1>Dbc#index</h1> 
<p></p> 
'backup'} %&gt; 
'restore'} %&gt; 


运行你的应用程序就可以了。

说明几点:
Rails中可以用%x{SYSTEM COMMAND}命令运行系统命令,借助刚才建立的db.rake,可以使用rake db:backup:create创建数据库备份,使用rake db:backup:rebuild恢复数据库。
如果你没有建立db.rake,那么控制器代码就这么写
Ruby代码
class DbcController  #{backup_file}" 
    redirect_to :action =&gt; :index 
  end 
 
  def restore 
    backup_folder = File.join(ENV["DIR"] || "db", 'backup') 
    FileUtils.mkdir_p(backup_folder) 
    db_config = ActiveRecord::Base.configurations[RAILS_ENV] 
    db_config = ActiveRecord::Base.configurations[RAILS_ENV] 
    bakfile = ENV['FILE'] 
    (Dir.new(backup_folder).entries - ['.', '..']).sort.reverse.each do |backup| 
      (bakfile = backup and break) if backup.starts_with?(RAILS_ENV) 
    end unless bakfile 
    raise 'could not find the backup file!' unless bakfile 
    ActiveRecord::Base.establish_connection(RAILS_ENV) 
    ActiveRecord::Base.connection.execute('SET foreign_key_checks = 0') 
    puts "rebuild database #{db_config['database']} from #{bakfile}" 
    system "mysql -u #{db_config['username']} #{'-p' if db_config['password']}#{db_config['password']} #{db_config['database']}  :index 
  end 
 
end 



分享到:
评论

相关推荐

    redmine数据库备份还原

    ### Redmine 数据库备份与还原知识点详解 #### 一、Redmine 概述 Redmine 是一款用 Ruby on Rails 编写的开源项目管理和缺陷跟踪工具。它提供了多种特性,包括但不限于时间跟踪、版本控制集成(如 SVN 和 Git)、...

    mid.zip_Rails

    这个"mid.zip_Rails"项目,作为一个多数据库管理平台,可能会提供用户界面,让管理员能够查看、创建、编辑和删除不同数据库中的数据,同时具备用户权限管理、数据库备份和恢复等功能。对于开发者而言,深入理解Rails...

    RoR中文解决方案(很不错哦)

    “mysql-front备份文件”提到了MySQL数据库的前端工具,MySQL Front是一款图形化管理工具,允许用户直观地管理数据库,包括创建、修改和备份数据库。在这里,它可能包含了一个已经创建好的数据库备份,开发者可以...

    ruby on rails 搭建redmine

    4. **数据库配置**:Redmine支持多种数据库,如MySQL、PostgreSQL。根据你的需求,修改`config/database.yml`文件设置数据库连接。 5. **安装依赖**:在项目根目录下运行`bundle install`,这会使用Bundler来安装...

    再次发一本部署rails的书

    4. **数据库部署**:讨论MySQL、PostgreSQL等数据库的安装与配置,以及数据迁移策略,包括Rails的数据库迁移工具`db:migrate`。 5. **环境变量与配置**:讲解如何管理生产环境中的敏感信息,如API密钥、数据库连接...

    rails web server deploy guide

    3. **数据库设置**:Rails应用通常与数据库紧密集成,如MySQL、PostgreSQL或SQLite。你需要在服务器上安装相应的数据库系统,并配置数据库连接参数。 4. **Ruby和Rails安装**:确保服务器上有正确的Ruby版本和Rails...

    导出数据库的所有数据成YML文件

    在IT行业中,数据库是存储和管理数据的核心工具,而数据导出是常见的需求,例如备份、迁移或分析。本文将详细讲解如何将数据库中的所有数据导出为YML(YAML Ain't Markup Language)文件,这是一种流行的配置文件...

    linux mint 下mysql中文支持问题

    在Linux Mint系统中,MySQL数据库默认不支持中文字符集,主要原因是其服务器和数据库的默认编码为latin1,而拉丁文编码无法完全涵盖中文字符。为了解决这个问题,我们需要将MySQL的字符集设置为UTF-8,因为UTF-8编码...

    redmine-0.8.2

    InstantRails 是一个预装了Ruby、Rails以及MySQL数据库等必要组件的一体化开发环境,便于开发者快速搭建和运行Rails应用。 首先,让我们深入了解Redmine 0.8.2 版本。这个版本可能已经有些过时,因为当前的Redmine...

    Redmine使用手册.doc

    2. 创建一个空数据库,例如名称为redmine的MySQL数据库。 3. 复制config/database.yml.example到config/database.yml,并在此文件中配置"production"环境下的数据库连接参数。 4. 在程序的根目录下运行命令创建...

    Windows下Redmine_2.5.2安装和配置

    在Windows环境下安装和配置Redmine 2.5.2是一个涉及多个步骤的过程,需要对Ruby、Rails、数据库支持以及相关工具有一定的了解。...此外,保持软件和安全更新,定期备份数据库,确保Redmine的稳定运行和数据安全。

    redmine.zip

    2. **安装环境**:Redmine需要Ruby运行环境、Rails框架、数据库支持(如MySQL或PostgreSQL)以及一些依赖库。安装过程可能涉及设置环境变量、安装Ruby、Rails、数据库驱动及必要的Gem包。 3. **数据库配置**:在...

    ruby命令集合(一些有用的命令)

    - `-d, database=xxx`:用于指定使用的数据库类型(如mysql、oracle、postgresql、sqlite2、sqlite3等),默认为sqlite3。 - `-r, ruby-path=`:用于指定Ruby的安装路径,如果没有指定,则使用环境中的Ruby。 - `...

    Rails4-Start-Up:rails4为ruby 2.1.2启动

    数据库:MySQL 计划任务:whenever 备份:backup 文件上传:qiniu 编辑器:simditor 缓存:Memcached + redis 任务队列:sidekiq 服务器和站点监控:New relic + monit + god 部署:Capistrano3 邮件发送:sendcloud...

    bitnami linux redmine 安装

    在 Bitnami Linux Redmine 的安装过程中,用户可以快速搭建一个完整的 Redmine 环境,包括数据库服务器(如 MySQL 或 PostgreSQL)、Web 服务器(如 Apache)以及 Ruby on Rails 框架。由于博文链接未提供具体内容,...

    BitNami的Redmine升级步骤

    1. **备份当前环境**:在任何升级操作之前,都应备份当前的Redmine环境,包括但不限于数据库和文件系统。 2. **阅读官方文档**:查阅Redmine官方发布的升级指南,了解最新的升级步骤和注意事项。 3. **下载新版...

    redmine使用手册

    - **数据备份**:使用`mysqldump`命令备份数据库。 - **附件备份**:使用`rsync`命令同步`RAILS_ROOT/files`目录中的附件。 示例脚本: ```bash # Database backup /usr/bin/mysqldump -u &lt;username&gt; -p &lt;password&gt;...

Global site tag (gtag.js) - Google Analytics