Rails DB関連の便利な設定


Ruby on Rails(Active Record)を使う中で便利な設定をいくつか紹介します。

🐯 schema情報をSQLで表現する

config.active_record.schema_format = :sqlとすると、スキーマ情報がschema.rbからstructure.sqlに変更されます。structure.sqlはSQLベースで表現され、複合プライマリキー等が詳細にダンプされます。

config/application.rbに次のように記述します。

# DBのスキーマ情報をSQLで表現
config.active_record.schema_format = :sql

🍣 statment_timeout:SQLのタイムアウトを管理

PostgreSQLではSQLのクエリ実行時間にタイムアウトを設定できます。database.ymlstatement_timeoutを記述します。

production:
url: <%= DATABASE_URL %>
variables:
statement_timeout: 5000

重い処理をActive Jobでのみ許可することもできます。

class MyAnalyticsJob < ActiveJob::Base
queue_as :analytics
def perform
ActiveRecord::Base.connection.execute “SET statement_timeout = 600000# 10分
# ...
ensure
ActiveRecord::Base.connection.execute “SET statement_timeout = 5000# 5秒
end
end

🐰 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍