`

Rails项目使用YamlDb进行数据库迁移

阅读更多

       最近项目中有个数据库迁移的需求,将现有的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项目中使用Rails数据库迁移的瑰宝

    非Rails(和非Ruby)项目中的Rails迁移。 什么是新的 在6.x版本中,由于增加了对Rails 6迁移的支持。 在5.x版本中,我们转向使用Rails 5迁移,而不是维护我们自己的迁移相关代码。 使用Rails 5迁移几乎可以做的任何...

    Rails项目源代码

    框架提供了丰富的内置功能,如路由、ORM(对象关系映射)、数据库迁移和强大的脚手架工具,帮助快速开发应用程序。 2. **MVC架构**: MVC模式将应用程序分为三个主要部分:模型(Model)处理数据逻辑,视图(View...

    浅谈Ruby on Rails下的rake与数据库数据迁移操作

    在Ruby on Rails框架中,数据库迁移是开发过程中不可或缺的一部分,用于管理数据库模式的变化。本文将深入探讨Rails中的rake工具和数据库迁移的概念,以及如何正确地利用它们。 首先,Rails中的Migration是数据库...

    rails 项目起步示例

    学习Rails项目起步,你需要熟悉这些核心概念,并掌握如何创建和运行Rails应用,以及如何使用Rails的命令行工具。同时,理解MVC模式和Rails的约定优于配置(Convention Over Configuration, CoC)原则是至关重要的。...

    Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

    标题中的“Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码”表明这是一个关于使用Ruby on Rails框架进行敏捷Web开发的示例项目,名为Depot。Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它...

    Ruby on Rails:数据库设计与迁移教程.docx

    Ruby on Rails:数据库设计与迁移教程.docx

    Ruby-SecondBase为Rails提供双数据库无缝相集成

    在数据库迁移方面,SecondBase扩展了ActiveRecord的迁移命令,使得你可以针对每个数据库运行单独的迁移。这意味着你可以对每个数据库进行定制化的结构更新,而不会影响到其他数据库。在Rails的命令行中,你可以指定...

    《web开发敏捷之道 应用rails进行敏捷web开发》(第一版)的depot源代码

    8. **Rake任务**:Rake是Ruby的构建工具,类似于Java的Ant或Python的setup.py,`rake db:migrate`命令常用于执行数据库迁移。 9. **测试驱动开发(TDD)**:Rails鼓励TDD,书中可能包含测试代码,如使用RSpec或Test::...

    flyway-rails:用于 Rails 数据库迁移的 Flyway 周围的薄包装器

    用于 Rails 数据库迁移的薄包装器 添加 rake 任务来管理您的数据库架构。 将此 gem 添加到您的 Rails 应用程序中: gem 'flyway-rails', github: 'bluerogue251/flyway-rails' 在应用程序的初始化程序中,设置...

    Ubuntu 11.04安装Ruby on rails 连接MySQL数据库.pdf

    3. **创建数据库**:切换到项目目录并运行数据库迁移脚本: ```bash cd jujube rake db:create:all ``` 4. **生成Scaffold**:用于快速构建模型、控制器和视图: ```bash ruby script/generate scaffold ...

    Ruby-Multiverse让Rails支持多数据库

    例如,`MULTIVERSE_DATABASE=secondary rails db:migrate`将会只对`secondary`数据库执行迁移。 此外,Multiverse还支持数据库路由,允许你在运行时动态切换数据库,这在处理临时的性能需求或者故障转移时非常有用...

    Ruby on Rails安装及MySQL数据库配置指南

    使用 Ruby on Rails 进行开发,可以体验到快速开发的优势。 Ruby on Rails 自动生成的代码也可以减少开发时间。Ruby on Rails 是一个非常实用的开发框架,可以提高开发效率。 五、官方阅读资源 Ruby on Rails 的...

    rails和mysql数据库连接中出现的问题以及解决办法

    Rails使用`mysql2` gem与MySQL进行通信。如果gem未安装或版本不兼容,会导致连接失败。确保在Gemfile中添加并锁定正确的`mysql2`版本,例如: ```ruby gem 'mysql2', '~> 0.5.3' ``` 然后运行`bundle install`安装...

    ruby on rails轻松使用

    14. **数据库迁移(Database Migrations)**: 当数据库结构需要变化时,使用`rails generate migration`创建迁移文件,然后通过`rails db:migrate`来执行迁移。 15. **Rails Console**: 交互式的命令行工具,可以...

    Ruby on rails 数据库详细配置

    在Ruby on Rails框架中,数据库配置是至关重要的部分,它允许开发者与各种数据库系统进行交互,如MySQL、Microsoft SQL Server等。以下将详细介绍如何在Windows环境下安装Ruby on Rails以及配置数据库。 首先,我们...

    rails的经典学习项目

    Rails的例子通常包含了从创建新的Rails应用开始,一直到部署上线的全部步骤,包括数据库迁移、路由设置、控制器和模型的编写、视图的渲染以及测试的实现。 压缩包内的文件名"rails项目.rar"和"cookbook.rar"可能...

    rails连接oracle需要的驱动

    rails连接oracle需要的驱动 执行命令:C:\> ruby 文件名.rb <br>

    Ruby on Rails入门例子

    - **数据库迁移(Database Migrations)**:Rails使用迁移来管理数据库结构的变化。通过`rails generate migration AddTitleToPosts title:string`创建迁移,然后运行`rails db:migrate`执行迁移。 - **...

Global site tag (gtag.js) - Google Analytics