SlideShare a Scribd company logo
rails_db_patch
Hamamatsu.rb #48
Yuto Ogi
職業railsエンジニアになって約半年。
課題
仕様変更や顧客要望で本番環境のDBへ
insert / update sqlを実行することがある。
課題
db/seed.rb とかもあるけど、
複数回実行するような用途ではない。
現在はrails console内で操作しているが、
実行履歴が残らない/別環境に同じことをする場
合面倒い。
欲しい機能
デプロイのたびに1回だけdbスクリプトを
実行する仕組み。
migrationファイルのように管理したい。
作りました
作りました
Install
gem install “db_patch”
Commands
rake db:patch:clear # clear database
rake db:patch:execute # execute patch
rake db:patch:init # initialize database
rake db:patch:new # create new patch file
コードなど
• プロジェクトで使う用途で突貫で作ったので不
具合あるかも。
• 実行履歴の管理は、migrationと同じように
Databaseにテーブルを用意しています。
• ruby内で.rbを実行するのは require “rubyファイ
ル名”で良いのか・・・
• spec書いていない。
rubygems.org への登録
• rake release で一撃。超簡単。
おわり

More Related Content

What's hot

apachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin ServerっぽいやつをつくったapachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin ServerっぽいやつをつくったJunichi Ishida
 
Web Workers
Web WorkersWeb Workers
Web Workerskaboccha
 
mrbcもマイコンの上で
mrbcもマイコンの上でmrbcもマイコンの上で
mrbcもマイコンの上で三七男 山本
 
itamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioningitamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioningYuto Ogi
 
Capistrano in practice - WebCareer
Capistrano in practice - WebCareerCapistrano in practice - WebCareer
Capistrano in practice - WebCareerKyosuke MOROHASHI
 
PIAXで作る P2Pネットワーク
PIAXで作る P2PネットワークPIAXで作る P2Pネットワーク
PIAXで作る P2Pネットワーク祐司 伊藤
 
Re: WebServer BenchMarking
Re: WebServer BenchMarkingRe: WebServer BenchMarking
Re: WebServer BenchMarkingRyo Tomidokoro
 
社内の画像変換サーバーをGoで置き換えた話
社内の画像変換サーバーをGoで置き換えた話社内の画像変換サーバーをGoで置き換えた話
社内の画像変換サーバーをGoで置き換えた話aoi shirase
 
わんくま東京#46 予告編
わんくま東京#46 予告編わんくま東京#46 予告編
わんくま東京#46 予告編Sunao Tomita
 
NorikraのJVMチューンで苦労している話
NorikraのJVMチューンで苦労している話NorikraのJVMチューンで苦労している話
NorikraのJVMチューンで苦労している話SATOSHI TAGOMORI
 
Couch DB in 15minutes
Couch DB in 15minutesCouch DB in 15minutes
Couch DB in 15minutesYohei Sasaki
 
WordPressでの制作説明
WordPressでの制作説明WordPressでの制作説明
WordPressでの制作説明Toshiaki Endo
 
NHN techcon-20120519-fujimoto
NHN techcon-20120519-fujimotoNHN techcon-20120519-fujimoto
NHN techcon-20120519-fujimotoMasaki Fujimoto
 

What's hot (17)

apachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin ServerっぽいやつをつくったapachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin Serverっぽいやつをつくった
 
Web Workers
Web WorkersWeb Workers
Web Workers
 
Varnish
VarnishVarnish
Varnish
 
mrbcもマイコンの上で
mrbcもマイコンの上でmrbcもマイコンの上で
mrbcもマイコンの上で
 
130207 kyotorb
130207 kyotorb130207 kyotorb
130207 kyotorb
 
itamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioningitamaeで一撃サーバーProvisioning
itamaeで一撃サーバーProvisioning
 
Capistrano in practice - WebCareer
Capistrano in practice - WebCareerCapistrano in practice - WebCareer
Capistrano in practice - WebCareer
 
PIAXで作る P2Pネットワーク
PIAXで作る P2PネットワークPIAXで作る P2Pネットワーク
PIAXで作る P2Pネットワーク
 
PSMTabBarControl
PSMTabBarControlPSMTabBarControl
PSMTabBarControl
 
serverless
serverlessserverless
serverless
 
Re: WebServer BenchMarking
Re: WebServer BenchMarkingRe: WebServer BenchMarking
Re: WebServer BenchMarking
 
社内の画像変換サーバーをGoで置き換えた話
社内の画像変換サーバーをGoで置き換えた話社内の画像変換サーバーをGoで置き換えた話
社内の画像変換サーバーをGoで置き換えた話
 
わんくま東京#46 予告編
わんくま東京#46 予告編わんくま東京#46 予告編
わんくま東京#46 予告編
 
NorikraのJVMチューンで苦労している話
NorikraのJVMチューンで苦労している話NorikraのJVMチューンで苦労している話
NorikraのJVMチューンで苦労している話
 
Couch DB in 15minutes
Couch DB in 15minutesCouch DB in 15minutes
Couch DB in 15minutes
 
WordPressでの制作説明
WordPressでの制作説明WordPressでの制作説明
WordPressでの制作説明
 
NHN techcon-20120519-fujimoto
NHN techcon-20120519-fujimotoNHN techcon-20120519-fujimoto
NHN techcon-20120519-fujimoto
 

More from Yuto Ogi

Rails application template
Rails application templateRails application template
Rails application templateYuto Ogi
 
Ruby with AWS DynamoDB
Ruby with AWS DynamoDBRuby with AWS DynamoDB
Ruby with AWS DynamoDBYuto Ogi
 
s3_website
s3_websites3_website
s3_websiteYuto Ogi
 
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方Yuto Ogi
 
浜松Ruby会議01
浜松Ruby会議01浜松Ruby会議01
浜松Ruby会議01Yuto Ogi
 
Web制作者のためのサーバー勉強会@沼津
Web制作者のためのサーバー勉強会@沼津Web制作者のためのサーバー勉強会@沼津
Web制作者のためのサーバー勉強会@沼津Yuto Ogi
 
Hamamatsurb#30
Hamamatsurb#30Hamamatsurb#30
Hamamatsurb#30Yuto Ogi
 
Introducing aws ruby sdk
Introducing aws ruby sdkIntroducing aws ruby sdk
Introducing aws ruby sdkYuto Ogi
 
20130310 jaws tokai2013
20130310 jaws tokai201320130310 jaws tokai2013
20130310 jaws tokai2013Yuto Ogi
 
20130112_出張JAWSUG浜松_Androidの会浜松支部
20130112_出張JAWSUG浜松_Androidの会浜松支部20130112_出張JAWSUG浜松_Androidの会浜松支部
20130112_出張JAWSUG浜松_Androidの会浜松支部Yuto Ogi
 
リーダブルコード 第二章
リーダブルコード 第二章リーダブルコード 第二章
リーダブルコード 第二章Yuto Ogi
 

More from Yuto Ogi (11)

Rails application template
Rails application templateRails application template
Rails application template
 
Ruby with AWS DynamoDB
Ruby with AWS DynamoDBRuby with AWS DynamoDB
Ruby with AWS DynamoDB
 
s3_website
s3_websites3_website
s3_website
 
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
OSC浜名湖2016 Hamamatsu.rbの歩みとITコミュニティとの上手な関わり方
 
浜松Ruby会議01
浜松Ruby会議01浜松Ruby会議01
浜松Ruby会議01
 
Web制作者のためのサーバー勉強会@沼津
Web制作者のためのサーバー勉強会@沼津Web制作者のためのサーバー勉強会@沼津
Web制作者のためのサーバー勉強会@沼津
 
Hamamatsurb#30
Hamamatsurb#30Hamamatsurb#30
Hamamatsurb#30
 
Introducing aws ruby sdk
Introducing aws ruby sdkIntroducing aws ruby sdk
Introducing aws ruby sdk
 
20130310 jaws tokai2013
20130310 jaws tokai201320130310 jaws tokai2013
20130310 jaws tokai2013
 
20130112_出張JAWSUG浜松_Androidの会浜松支部
20130112_出張JAWSUG浜松_Androidの会浜松支部20130112_出張JAWSUG浜松_Androidの会浜松支部
20130112_出張JAWSUG浜松_Androidの会浜松支部
 
リーダブルコード 第二章
リーダブルコード 第二章リーダブルコード 第二章
リーダブルコード 第二章