2

我曾使用 Backup gem 来创建 Postgresql DB 的备份。

“backup perform -t my_backup”在2012.10.06.12.30.11文件夹中生成一个my_backup.tar文件

tar 文件包含 image.tar 和 .sql 文件。

从这个 tar 文件恢复数据库的方法是什么?

4

1 回答 1

3

做一个 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

确保您的数据库用户具有superuserorcreatedb角色。

于 2012-10-06T11:21:20.943 回答