とてもじゃないけどALTER TABLEできないようであれば、mysqldumpしてそのファイルを置き換えてあげれば良い
sed mydata.sql -e 's/TokuDB/MyISAM/g' -e $'s/`compression`=\'tokudb_zlib\'//g' > mydata_converted.sql
完全にバッドノウハウ
とてもじゃないけどALTER TABLEできないようであれば、mysqldumpしてそのファイルを置き換えてあげれば良い
sed mydata.sql -e 's/TokuDB/MyISAM/g' -e $'s/`compression`=\'tokudb_zlib\'//g' > mydata_converted.sql
完全にバッドノウハウ
SSHでサーバーにログインして以下のようなコマンドを叩くとする。
nohup some_command &
するとnohupコマンドにより、SSHを切断してもsome_commandの処理はバックグラウンドで動き続ける。
これをcronで自動実行したい
そのまま書くのはダメで
some_command >/dev/null 2>&1 &
と書かなければならない。
ポイントは2つあって
>/dev/null 2>&1
が必要なぜかって言うとcronの仕様らしく、
crontab により実行されたコマンドから出力が行われると、 cron デーモンは通常その出力結果を登録されたメールアドレス宛に配送します。 そのため、cronスクリプトがバックグラウンドで行われていても、そのプロセスがopenしているファイルディスクリプタがcloseされない限り、cronは次の処理に移行しないのです。
だそうです。とりあえずうまく行ったからいいや(
DateTimeはあくまで日ベースなので単純には秒の差が取得できない
(DateTime - DateTime)はRationalになるので、1日を秒に変換した、「24 * 60 * 60」をかけて秒に変換する
require "date" date1 = Date.today date2 = Date.today - 3 puts ((date1 - date2)* 60 * 60 * 24).to_i => 259200
先にTime型に変換してTime-Timeで秒を取得する
require "date" date1 = Date.today date2 = Date.today - 3 puts (date1.to_time - date2.to_time).to_i => 259200
どっちがいいんだろう
Bootstrapではalertというクラスが用意されている。
<div class="alert alert-primary" role="alert"> This is a primary alert—check it out! </div> <div class="alert alert-secondary" role="alert"> This is a secondary alert—check it out! </div> <div class="alert alert-success" role="alert"> This is a success alert—check it out! </div> <div class="alert alert-danger" role="alert"> This is a danger alert—check it out! </div> <div class="alert alert-warning" role="alert"> This is a warning alert—check it out! </div> <div class="alert alert-info" role="alert"> This is a info alert—check it out! </div> <div class="alert alert-light" role="alert"> This is a light alert—check it out! </div> <div class="alert alert-dark" role="alert"> This is a dark alert—check it out! </div>
これをRailsのflashといい感じに混ぜたいって話
まず今回のキモのadd_flash_types
ApplicationController(app/views/layouts/application.html.erb)にadd_flash_typesを以下のように追加
class ApplicationController < ActionController::Base protect_from_forgery with: :exception add_flash_types :success, :info, :warning, :danger end
次はビューの設定。app/views/layouts/application.html.erbのbody内に以下を追加
<% flash.each do |name, msg| %> <div class="alert alert-<%= name %>"> <%= msg.html_safe %> </div> <% end %>
redirect_to posts_path, success: '投稿に成功しました!'
マジでかんたんだは
ファイル一覧取得自体はDir.globでできるので、
それをsort_by
を使ってファイル更新日時順にソートすればおk
Dir.glob("/data/*.json").sort_by{ |f| File.mtime(f) }.each do |file| end
ただこのやり方だとファイルの数だけFileオブジェクトが生成される(多分)ので何十万件といった一覧を処理するには向いてないかも