[英]Rake task to backup and restore database
我正在開發一個Rails項目,有時候我會在家里編程,有時也會在工作中編程。 在我的開發過程中,我將數據添加到數據庫中,我真的需要一種在家和工作中同步數據庫的方法。
我正在考慮在Rails應用程序中備份/恢復整個數據庫的Rake任務。
反正有嗎?
寫一個rake任務:
namespace :db do
task :backup do
system "mysqldump --opt --user=root --password rose userdetails> xyz.sql"
end
task :restore do
system "mysqldump --user=root --password < xyz.sql"
end
end
通過rake db:backup
你將得到你可以提交給你的git / svn的sql,一旦你在家工作恢復拉它並運行rake db:restore
我使用一個腳本將數據庫轉儲到特定位置,第二個腳本提取轉儲並使用它來恢復指定的數據庫。 我使用Whenever gem來安排每日備份(通過調用第一個腳本),將其放在schedule.rb文件中:
every :day, :at => "05:00" do
command "/var/www/current/script/db_backup.sh -n #{@db_name}"
end
腳本的確切內容取決於您正在使用的數據庫。 當我使用postgreSQL時,備份腳本在確定轉儲的正確位置后運行pg_dump:
pg_dump -F t -U username -f file_location<timestamp>.dat database_name
我用來將生產備份復制到本地數據庫進行測試的'restore'腳本使用pg_restore:
pg_restore -U username -O -x -d database_name_new path/to/file
如果您正在使用其他數據庫,這些工具顯然會有所不同,但大多數數據庫都支持某種形式的備份和恢復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.