Rails项目数据库迁移

4 篇文章 0 订阅
2 篇文章 0 订阅

背景

本人有个Rails小项目,原来使用的是Sqlite ,现在想将数据库变更为 Mysql
由于项目已经正常运营一段时间,Sqlite 数据库内已经有很多数据,这些数据也要重新添加到 Mysql 中

操作步骤

1.安装工具 YamlDb

在 Gemfile 中添加 gem 'yaml_db' 然后 bundle instal

2.导出数据

执行命令 rake db:dump RAILS_ENV=production
成功执行后,会在 db/ 目录下创建 data.yml 文件,文件内有 Sqlite 中的数据

3.修改数据库配置文件 config/database.yml

修改前为Sqlite

default: &default
  adapter: sqlite3
  pool: 5
  timeout: 20000
production:
  <<: *default
  database: db/production.sqlite3

修改后为Mysql

default: &default
  adapter: mysql2
  pool: 5
  timeout: 20000
  host: mysql
  port: 3306
  username: root
  password: root
  reconnect: true
  charset: utf8
production:
  <<: *default
  database: sprint_util_production
4.创建数据库服务

这里不赘述,自己自行配置Mysql
需要注意,host port username password 需要与配置文件一样

5.在Mysql中创建对应的数据库

执行命令 rake db:create RAILS_ENV=production
执行完成后去Mysql中验证下是否创建了指定的数据库

6.在Mysql数据库中创建对应的表结构

执行命令 rake db:schema:load RAILS_ENV=production
执行完成后去Mysql中验证下是否创建了指定的表rar

7.将db/data.yml中的数据导入到Mysql

执行命令 rake db:load RAILS_ENV=production
生产环境有数据保护,会执行失败,根据失败的提示添加一个环境变量就可以了
成功后去Mysql中去查看验证,数据已经导入了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值