最近项目中有个数据库迁移的需求,将现有的SQLite迁移到MySQL。由于是前人遗留的项目,没有建库的SQL,也没有相关文档。同时,还有大量的线上数据也需要迁移。刚接到这个需求时,自己想了几种方案,但是感觉太过繁琐,不够可靠。后来在网上找到YamlDB这个工具,并在模拟环境中进行了测试,发现非常方便、可靠和强大。具体操作如下:
Step 0
1. 安装MySQL
2. 创建数据库
2. sudo gem install mysql
注: 数据库编码一定要和现有项目保持一直,不然就容易出现乱码现象;
Step 1
安装YamlDB,此工具支持Rails 2.x 和 Rails 3.x;
Rails 2.x 安装:
script/plugin install git://github.com/adamwiggins/yaml_db.git
Rails 3.x 安装,在Gemfile中添加:
gem 'yaml_db'
Step 2
使用YamlDb,备份数据库:
rake db:dump
Step 3
更新数据库配置文件:
将现在有的SQLite配置进行备份:
cp database.yml config.database.yml.sqlite3
修改数据库配置:
development:
adapter: mysql
encoding: utf8
reconnect: false
database: ** database **
pool: 5
username: ** username **
password: ** password **
socket: ** /tmp/mysql.sock **
test:
adapter: mysql
encoding: utf8
reconnect: false
database: ** database **
pool: 5
username: ** username **
password: ** password **
socket: ** /tmp/mysql.sock **
production:
adapter: mysql
encoding: utf8
reconnect: false
database: ** database **
pool: 5
username: ** username **
password: ** password **
socket: ** /tmp/mysql.sock **
Step 4
使用YamlDb,创建数据库表
rake db:schema:load
Step 5
使用YamlDb,导入数据
rake db:load
小结:YamlDB不能对数据库的用户、权限、触发器等高级特性进行迁移,只能做数据库的表、数据进行迁移操。
分享到:
相关推荐
非Rails(和非Ruby)项目中的Rails迁移。 什么是新的 在6.x版本中,由于增加了对Rails 6迁移的支持。 在5.x版本中,我们转向使用Rails 5迁移,而不是维护我们自己的迁移相关代码。 使用Rails 5迁移几乎可以做的任何...
框架提供了丰富的内置功能,如路由、ORM(对象关系映射)、数据库迁移和强大的脚手架工具,帮助快速开发应用程序。 2. **MVC架构**: MVC模式将应用程序分为三个主要部分:模型(Model)处理数据逻辑,视图(View...
在Ruby on Rails框架中,数据库迁移是开发过程中不可或缺的一部分,用于管理数据库模式的变化。本文将深入探讨Rails中的rake工具和数据库迁移的概念,以及如何正确地利用它们。 首先,Rails中的Migration是数据库...
学习Rails项目起步,你需要熟悉这些核心概念,并掌握如何创建和运行Rails应用,以及如何使用Rails的命令行工具。同时,理解MVC模式和Rails的约定优于配置(Convention Over Configuration, CoC)原则是至关重要的。...
标题中的“Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码”表明这是一个关于使用Ruby on Rails框架进行敏捷Web开发的示例项目,名为Depot。Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它...
Ruby on Rails:数据库设计与迁移教程.docx
在数据库迁移方面,SecondBase扩展了ActiveRecord的迁移命令,使得你可以针对每个数据库运行单独的迁移。这意味着你可以对每个数据库进行定制化的结构更新,而不会影响到其他数据库。在Rails的命令行中,你可以指定...
8. **Rake任务**:Rake是Ruby的构建工具,类似于Java的Ant或Python的setup.py,`rake db:migrate`命令常用于执行数据库迁移。 9. **测试驱动开发(TDD)**:Rails鼓励TDD,书中可能包含测试代码,如使用RSpec或Test::...
用于 Rails 数据库迁移的薄包装器 添加 rake 任务来管理您的数据库架构。 将此 gem 添加到您的 Rails 应用程序中: gem 'flyway-rails', github: 'bluerogue251/flyway-rails' 在应用程序的初始化程序中,设置...
3. **创建数据库**:切换到项目目录并运行数据库迁移脚本: ```bash cd jujube rake db:create:all ``` 4. **生成Scaffold**:用于快速构建模型、控制器和视图: ```bash ruby script/generate scaffold ...
例如,`MULTIVERSE_DATABASE=secondary rails db:migrate`将会只对`secondary`数据库执行迁移。 此外,Multiverse还支持数据库路由,允许你在运行时动态切换数据库,这在处理临时的性能需求或者故障转移时非常有用...
使用 Ruby on Rails 进行开发,可以体验到快速开发的优势。 Ruby on Rails 自动生成的代码也可以减少开发时间。Ruby on Rails 是一个非常实用的开发框架,可以提高开发效率。 五、官方阅读资源 Ruby on Rails 的...
Rails使用`mysql2` gem与MySQL进行通信。如果gem未安装或版本不兼容,会导致连接失败。确保在Gemfile中添加并锁定正确的`mysql2`版本,例如: ```ruby gem 'mysql2', '~> 0.5.3' ``` 然后运行`bundle install`安装...
14. **数据库迁移(Database Migrations)**: 当数据库结构需要变化时,使用`rails generate migration`创建迁移文件,然后通过`rails db:migrate`来执行迁移。 15. **Rails Console**: 交互式的命令行工具,可以...
在Ruby on Rails框架中,数据库配置是至关重要的部分,它允许开发者与各种数据库系统进行交互,如MySQL、Microsoft SQL Server等。以下将详细介绍如何在Windows环境下安装Ruby on Rails以及配置数据库。 首先,我们...
Rails的例子通常包含了从创建新的Rails应用开始,一直到部署上线的全部步骤,包括数据库迁移、路由设置、控制器和模型的编写、视图的渲染以及测试的实现。 压缩包内的文件名"rails项目.rar"和"cookbook.rar"可能...
rails连接oracle需要的驱动 执行命令:C:\> ruby 文件名.rb <br>
- **数据库迁移(Database Migrations)**:Rails使用迁移来管理数据库结构的变化。通过`rails generate migration AddTitleToPosts title:string`创建迁移,然后运行`rails db:migrate`执行迁移。 - **...