2017-01-12 8 views
0

デフォルトのレールデータベースをバックアップするレーキタスクを作成する方法を知りました。私は次のことを試みた。しかし、何もファイルに書き込まれていないようです。メモリ内のsqliteデータベースをバックアップするためのレイクタスク

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 

答えて

0

明らかに、システムは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 
関連する問題