我曾使用 Backup gem 来创建 Postgresql DB 的备份。
“backup perform -t my_backup”在2012.10.06.12.30.11文件夹中生成一个my_backup.tar文件
tar 文件包含 image.tar 和 .sql 文件。
从这个 tar 文件恢复数据库的方法是什么?
我曾使用 Backup gem 来创建 Postgresql DB 的备份。
“backup perform -t my_backup”在2012.10.06.12.30.11文件夹中生成一个my_backup.tar文件
tar 文件包含 image.tar 和 .sql 文件。
从这个 tar 文件恢复数据库的方法是什么?
做一个 rake 任务(假设你的 SQL 文件名为foo.sql
)
namespace :db do
task import: :environment do
import_path = "/tmp/import"
sql_file = "foo.sql"
database_config = Rails.configuration.database_configuration[Rails.env]
# Unpack
system "tar xf my_backup.tar -C #{import_path}"
system "gzip -df #{import_path}/#{sql_file}.gz"
# Import
system "psql --username=#{database_config['username']} -no-password #{database_config['database']} < #{import_path}/#{sql_file}"
end
end
确保您的数据库用户具有superuser
orcreatedb
角色。