Rails4アプリケーションを IIJ Mogok にdeployする手順


残念ながら IIJ Mogok は2017年1月末日にサービス終了するそうです。
http://mogok.jp/


MogokへのdeployはRailsGirlsの記事がよくまとまっていて、付け加えることはほぼ無い。
http://railsgirls.jp/mogok

よく使うコマンド

# mogokの場合、mogok buildで自動的にやってくれてるかもしれない ※未確認
$ rake assets:clean
$ rake assets:precompile

# assetsを一旦綺麗にするならこれ。その後、precompile。
$ rake assets:clobber
$ git push mogok master
$ mogok build
$ mogok rake db:migrate
$ mogok stop
$ mogok start

MogokでSQL実行

http://qiita.com/nagahori/items/13655c4fe7e44b46795a
但し、selectはprotectedになっているらしく、select_allを使うと良い。
http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/DatabaseStatements.html#method-i-select_all

Rubyスクリプト実行
require "#{Rails.root}/app/models/battle"

@result = ActiveRecord::Base.connection.select_all("select * from battles")

p @result

また、モデルをrequireしているので、モデルに定義しているメソッドも呼び出せる。※cascadeでdeleteして欲しい場合などにはこちらの方が適切かと。

Rubyスクリプト実行
require "#{Rails.root}/app/models/battle"

@battle = Battle.find(7)
#p @battle

@battle.destroy

Mogokハマり履歴

db:migrateでテーブルの作成順が悪くエラーが発生した。
FKの参照先となるテーブルを先に作っていなかった。(MySQL)

絵文字対応

Mogokの既存MySQLデータベースに絵文字を格納できるようにする。
Mogokではmy.cnfを編集できないので難しいかと思っていたが何とか出来た。

詳細については追々記述する。

参考: http://qiita.com/leon-joel/items/93eaab4860de2787db96