Rails

[Rails] 本番サーバ上で必要なデータをCSVに出力し、ローカルに落としてくる

よくやる作業なのでメモしておく。

  • Railsコンソールで実行
  • Excelで開く時に文字化けしないようにBOMを追加する
  • SCPでローカルに落とす
# 本番サーバで Rails Console に入る
# ssh hogehoge
# cd /var/www/hogehoge/current
# RAILS_ENV=production bundle exec rails c

# file_name = "user_info.csv"
file_name = ""
# columns = %w(id name age address)
columns = %w()

# Excel で開くことができるように BOM を追加
File.open file_name, 'w' do |f|
  f.write "\uFEFF"
end

CSV.open file_name, 'a' do |csv|
  csv << columns
  # User.each do |uesr|
  #   csv << [user.id, user.name, user.age, user.address]
  # end
end

# ファイルをローカルへコピー ※ローカルで実行
# scp remote-hostname:/var/www/hogehoge/current/user_info.csv user_info.csv
scp remote-hostname:/remote/path/to/file /local/path/to/file

# csv ファイルを削除 ※本番サーバで実行
# rm user_info.csv
rm file_name