[Rails] 資料庫備份還原 yaml_db 使用方式
Yaml_db
將 db 資料轉成 yaml 備份、還原
主要的指令如下
rake db:data:dump -> 匯出到 db/data.yml
rake db:data:load -> 從 db/data.yml 還原到db
使用方式
情境:將 sqlite 轉到 mysql
專案做到一半才想起來,忘記用 mysql 了,想把 sqlite 裡面的資料無痛轉移到 mysql 去
- 安裝 yaml_db
gem 'yaml_db'
並執行 bundle install
- 將 db 匯出
rake db:data:dump # 匯出到 db/data.yml
- 更改 database
gemfile
# gem 'sqlite3' gem 'mysql2'
bundle
database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock
development:
<<: *default
database: xxx_development
test:
<<: *default
database: xxx_test
production:
<<: *default
database: xxx_production
username: xxx
password: <%= ENV['XXX_DATABASE_PASSWORD'] %>
- 建立 db
rake db:create
rake db:schema:load
- 還原 db
rake db:data:load
類似解決方案
參考
- https://github.com/yamldb/yaml_db
- https://stackoverflow.com/questions/1670154/convert-a-ruby-on-rails-app-from-sqlite-to-mysql
留言