Rails项目数据库迁移
程序员文章站
2022-07-12 23:52:03
...
背景
本人有个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中去查看验证,数据已经导入了
上一篇: django项目数据库迁移(sqlite3迁移到mysql)
下一篇: VNC配置