在#{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'} %>
'restore'} %>
运行你的应用程序就可以了。
说明几点:
Rails中可以用%x{SYSTEM COMMAND}命令运行系统命令,借助刚才建立的db.rake,可以使用rake db:backup:create创建数据库备份,使用rake db:backup:rebuild恢复数据库。
如果你没有建立db.rake,那么控制器代码就这么写
Ruby代码
class DbcController #{backup_file}"
redirect_to :action => :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 是一款用 Ruby on Rails 编写的开源项目管理和缺陷跟踪工具。它提供了多种特性,包括但不限于时间跟踪、版本控制集成(如 SVN 和 Git)、...
这个"mid.zip_Rails"项目,作为一个多数据库管理平台,可能会提供用户界面,让管理员能够查看、创建、编辑和删除不同数据库中的数据,同时具备用户权限管理、数据库备份和恢复等功能。对于开发者而言,深入理解Rails...
“mysql-front备份文件”提到了MySQL数据库的前端工具,MySQL Front是一款图形化管理工具,允许用户直观地管理数据库,包括创建、修改和备份数据库。在这里,它可能包含了一个已经创建好的数据库备份,开发者可以...
4. **数据库配置**:Redmine支持多种数据库,如MySQL、PostgreSQL。根据你的需求,修改`config/database.yml`文件设置数据库连接。 5. **安装依赖**:在项目根目录下运行`bundle install`,这会使用Bundler来安装...
4. **数据库部署**:讨论MySQL、PostgreSQL等数据库的安装与配置,以及数据迁移策略,包括Rails的数据库迁移工具`db:migrate`。 5. **环境变量与配置**:讲解如何管理生产环境中的敏感信息,如API密钥、数据库连接...
3. **数据库设置**:Rails应用通常与数据库紧密集成,如MySQL、PostgreSQL或SQLite。你需要在服务器上安装相应的数据库系统,并配置数据库连接参数。 4. **Ruby和Rails安装**:确保服务器上有正确的Ruby版本和Rails...
在IT行业中,数据库是存储和管理数据的核心工具,而数据导出是常见的需求,例如备份、迁移或分析。本文将详细讲解如何将数据库中的所有数据导出为YML(YAML Ain't Markup Language)文件,这是一种流行的配置文件...
在Linux Mint系统中,MySQL数据库默认不支持中文字符集,主要原因是其服务器和数据库的默认编码为latin1,而拉丁文编码无法完全涵盖中文字符。为了解决这个问题,我们需要将MySQL的字符集设置为UTF-8,因为UTF-8编码...
InstantRails 是一个预装了Ruby、Rails以及MySQL数据库等必要组件的一体化开发环境,便于开发者快速搭建和运行Rails应用。 首先,让我们深入了解Redmine 0.8.2 版本。这个版本可能已经有些过时,因为当前的Redmine...
2. 创建一个空数据库,例如名称为redmine的MySQL数据库。 3. 复制config/database.yml.example到config/database.yml,并在此文件中配置"production"环境下的数据库连接参数。 4. 在程序的根目录下运行命令创建...
在Windows环境下安装和配置Redmine 2.5.2是一个涉及多个步骤的过程,需要对Ruby、Rails、数据库支持以及相关工具有一定的了解。...此外,保持软件和安全更新,定期备份数据库,确保Redmine的稳定运行和数据安全。
2. **安装环境**:Redmine需要Ruby运行环境、Rails框架、数据库支持(如MySQL或PostgreSQL)以及一些依赖库。安装过程可能涉及设置环境变量、安装Ruby、Rails、数据库驱动及必要的Gem包。 3. **数据库配置**:在...
- `-d, database=xxx`:用于指定使用的数据库类型(如mysql、oracle、postgresql、sqlite2、sqlite3等),默认为sqlite3。 - `-r, ruby-path=`:用于指定Ruby的安装路径,如果没有指定,则使用环境中的Ruby。 - `...
数据库:MySQL 计划任务:whenever 备份:backup 文件上传:qiniu 编辑器:simditor 缓存:Memcached + redis 任务队列:sidekiq 服务器和站点监控:New relic + monit + god 部署:Capistrano3 邮件发送:sendcloud...
在 Bitnami Linux Redmine 的安装过程中,用户可以快速搭建一个完整的 Redmine 环境,包括数据库服务器(如 MySQL 或 PostgreSQL)、Web 服务器(如 Apache)以及 Ruby on Rails 框架。由于博文链接未提供具体内容,...
1. **备份当前环境**:在任何升级操作之前,都应备份当前的Redmine环境,包括但不限于数据库和文件系统。 2. **阅读官方文档**:查阅Redmine官方发布的升级指南,了解最新的升级步骤和注意事项。 3. **下载新版...
- **数据备份**:使用`mysqldump`命令备份数据库。 - **附件备份**:使用`rsync`命令同步`RAILS_ROOT/files`目录中的附件。 示例脚本: ```bash # Database backup /usr/bin/mysqldump -u <username> -p <password>...