Rake 任务备份内存中的 sqlite 数据库

Rake task to backup in-memory sqlite database

我想知道如何编写备份默认 rails 数据库的 rake 任务。我尝试了以下。但是,文件中似乎没有任何内容。

namespace :mockdb do
 desc "Back up the database"
  task :backup => :environment do
    puts "Backing up the database.."
    system "sqlite3 .dump > #{dump_path}"
    puts "Phew! All data has been backed up!"
 end

 def dump_path
  Rails.root.join('db/mock.sql').to_path
 end
end 

显然系统无法找到 sqlite3。我必须给出安装路径。以下是最后的片段

namespace :mockdb do
  sqlite_path = "/usr/bin/sqlite3"
  sql_file = "db/#{Rails.env}.sqlite3"

 desc "Back up the database"
  task :backup => :environment do
    puts "Backing up the database.."
    system "#{sqlite_path} #{sql_file} .dump > #{dump_path}"
    puts "All data has been backed up!"
  end

 def dump_path
  Rails.root.join('db/mock.sql').to_path
 end
end