Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rails産でないDBを Railsに引っ越すHACK - Omotesando.rb #110
Search
lni_T
June 05, 2025
Programming
1
230
Rails産でないDBを Railsに引っ越すHACK - Omotesando.rb #110
Omotesando.rb #110 のLT資料です
「Rails産でないDBをRailsに引っ越すHACK」
lni_T
June 05, 2025
Tweet
Share
More Decks by lni_T
See All by lni_T
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
3
680
ruby.wasmとWebSocketで遊ぼう!
lnit
0
180
ActiveRecordの力でDBのメタデータを迅速に解析する
lnit
6
2.9k
ruby.wasm × Service Workerでサーバーのいらないモックサーバーを作る
lnit
0
370
Railsアプリの仕様書を一瞬で作りたい話 - Omotesando.rb #99
lnit
1
340
ruby.wasm 最前線 2024 - wasmでMockServerをつくる #rubykaigi
lnit
2
4k
Turbolinksアレルギー患者に捧げるTurbo & Stimulusでの時短実装術 / Kaigi on Rails 2023
lnit
4
5.8k
ruby.wasmでブラウザを酷使してみよう / 2023-MatsueRubyKaigi
lnit
0
1.7k
ブラウザで「今すぐ」gemを読み込む方法 / Load-gem-from-browser-JUST-NOW
lnit
0
1.4k
Other Decks in Programming
See All in Programming
Pythonスレッドとは結局何なのか? CPython実装から見るNoGIL時代の変化
curekoshimizu
4
1.3k
iOS 17で追加されたSubscriptionStoreView を利用して5分でサブスク実装チャレンジ
natmark
0
570
(Extension DC 2025) Actor境界を越える技術
teamhimeh
1
220
Web Components で実現する Hotwire とフロントエンドフレームワークの橋渡し / Bridging with Web Components
da1chi
3
1.7k
止められない医療アプリ、そっと Swift 6 へ
medley
1
120
CSC305 Lecture 01
javiergs
PRO
1
400
実践AIチャットボットUI実装入門
syumai
7
2.4k
LLMとPlaywright/reg-suitを活用した jQueryリファクタリングの実際
kinocoboy2
4
660
SpecKitでどこまでできる? コストはどれくらい?
leveragestech
0
510
ソフトウェア設計の実践的な考え方
masuda220
PRO
3
470
iOSアプリの信頼性を向上させる取り組み/ios-app-improve-reliability
shino8rayu9
0
150
Conquering Massive Traffic Spikes in Ruby Applications with Pitchfork
riseshia
0
150
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
A designer walks into a library…
pauljervisheath
209
24k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
The Language of Interfaces
destraynor
162
25k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
How STYLIGHT went responsive
nonsquared
100
5.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
GitHub's CSS Performance
jonrohan
1032
460k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Transcript
3BJMT࢈Ͱͳ͍%#Λ 3BJMTʹҾͬӽ͢)"$, 0NPUFTBOEPSC !-OJ@5ϧχ
ࣗݾհ w5XJUUFS 9 *%!MOJ@5 ϧχ w.FE1FFS ג ͷ3BJMTΤϯδχΞ w+BWBΛ3BJMTʹϦϓϨΠεͨ͠Γ
1)1Λ3BJMTʹϦϓϨΠεͨ͠Γɹͯ͠ੜܭΛཱͯΔ ʘΑΖ͘͠Ͷʗ
None
None
͡Ίʹ
ຊͷςʔϚ 3BJMT
ຊͷςʔϚ "DUJWF3FDPSE
"DUJWF3FDPSE ͍ͬͯ·͔͢ʁ
"DUJWF3FDPSE .7$ΞʔΩςΫνϟͷ.PEFM෦ .PEFM ॲཧ 7JFX දࣔ $POUSPMMFS ೖྗୡ
ڧྗͳ03.BQQFS ϓϩάϥϛϯάݴޠͷΦϒδΣΫτͱ3%#.4Λଓ͢Δٕज़ ΦϒδΣΫτͷଐੑؔ࿈ΛఆٛͰ͖Δ 42-Λهड़ͤͣɺอଘऔಘ͕Ͱ͖Δ
ศརʂ 3BJMTΤϯδχΞ 42-͕ॻ͚ͳ͍ʂ
ҰํͰ
ن͕ఆΊΒΕ͍ͯΔ
͍Ζ͍Ζͳن ςʔϒϧ໊Ϟσϧ໊ͷෳܗTOBLF@DBTF #PPL$MVCCPPL@DMVCT αϩήʔτΩʔ ػցతͳओΩʔ ͷར༻
Կࢦఆ͠ͳ͚ΕJEΧϥϜ͕ࣗಈੜ͞ΕΔ ֎෦Ωʔͷ໋໊୯ܗͷςʔϒϧ໊@JEύλʔϯ
͍Ζ͍Ζͳن ςʔϒϧ໊Ϟσϧ໊ͷෳܗTOBLF@DBTF #PPL$MVCCPPL@DMVCT αϩήʔτΩʔ ػցతͳओΩʔ ͷར༻
Կࢦఆ͠ͳ͚ΕJEΧϥϜ͕ࣗಈੜ͞ΕΔ ֎෦Ωʔͷ໋໊୯ܗͷςʔϒϧ໊@JEύλʔϯ "DUJWF3FDPSEͷڧྗ͞ͷԸܙΛड͚Δʹ %#ઃܭΛنʹ߹ΘͤΔඞཁ͕͋Δ
ઃఆΑΓن💪
͔͠͠
3BJMTͰͳ͍αʔϏεͷ%#ʁ
ຊͷςʔϚ ଞͷݴޠͷ8FCαʔϏεΛ3BJMTʹϦϓϨΠε͢Δͧʂ %#ؔ࿈ͷͭΒ͍ࣄྫͱճආࡦ
લఏ݅
લఏ݅ %#ߏΛ࠶ฤ͢ΔҠߦํͰͳ͘ʜʜ
લఏ݅ ӡ༻தͷ%#ʹଓͯ͠ঃʑʹҠߦ͍ͯ͘͠ํʂ
ຊฤ
໋໊نҧͷରࡦ
໋໊نҧͷରࡦ ςʔϒϧ໊ࢦఆUBCMF@OBNF ֎෦Ωʔ໊ࢦఆGPSFJHO@LFZ IUUQTSBJMTHVJEFTKQBDUJWF@SFDPSE@CBTJDTIUNM໋໊نΛ্ॻ͖͢Δ
3BJMTنΛ্ॻ͖Ͱ͖Δ ͳΜͩࣗ༝ߴ͍͡ΌΜ 😁😁😁
ͱࢥ͍͖ʜʁ
%BOHFSPVT"UUSJCVUF&SSPS "DUJWF3FDPSE%BOHFSPVT"UUSJCVUF&SSPS 3BJMTͰ༧ࡁͷΧϥϜ໊͑ͳ͍ IBTI NPEFM@OBNF PCKFDU@JEͳͲͳͲʜʜ
"DUJWF3FDPSEͷΠϯελϯεϝιου໊ͱಉ໊͡લͷΧϥϜ͕ طଘ%#ͷςʔϒϧʹ࡞ΒΕ͍ͯΔͱ065
ରࡦʁ
ͦͷ໊લΛΘͳ͍
ӡ༻தͷΧϥϜͷ 3FOBNFӨڹൣғେ Ͱ͖ͨΒ ۤ࿑͠ͳ͍
ۤͷࡦ ΧϥϜ໊ҡ࣋
JHOPSFE@DPMVNOT "DUJWF3FDPSEΦϒδΣΫτ͔Β ແࢹ͞ΕΔ ͷࢀরઃఆͰ͖ͳ͍ औΓٸ͗ΤϥʔΛফ͍ͨ͠߹͜Ε
σʔλಡΈऔΓ
(FOFSBUFE$PMVNO 3%#.4ͷʮ(FOFSBUFE$PMVNOʯ ੜྻ ػೳ͕͑Δ߹͋Γ .Z42- 1PTUHSF42- 42-JUF͋ͨΓͰ͑ͦ͏
ΧϥϜͷ͕ɺΧϥϜఆٛͷʮࣜʯʹΑͬͯܭࢉ͞ΕΔ
(FOFSBUFE$PMVNO ༧ࡁͰͳ໊͍લͷੜྻΛՃ͢Δ͜ͱͰ 3BJMT͔ΒΛࢀরͰ͖ΔΑ͏ʹͳΔ
σʔλॻ͖ࠐΈ
جຊ%#ϨΠϠʔͰΔ
σϑΥϧτ σϑΥϧτఆٛʹܭࢉࣜΛઃఆ͓ͯ͘͠ */4&35࣌ʹ%#͕ΛೖΕͯ͘ΕΔʂ
53*((&3 ςʔϒϧʹରͯ͠ಛఆͷΠϕϯτ͕ൃੜ͢Δͱ࣮ߦ͞ΕΔ 61%"5&࣌ʹ%#͕ΛೖΕͯ͘ΕΔʂ
ཧ͕ͱͯͭΒ͍
ۤଓ͘
ׂ%#ରࡦ
ςʔϒϧ͝ͱʹॴଐ%#͕ҟͳΔ %#͕ෳଘࡏ͢Δ߹͕͋Δ
ෳ%#ରԠ DPO fi HEBUBCBTFZNMͰ%#ଓΛෳఆٛ͢Δ͜ͱ͕Մೳ
DPOOFDUT@UP Ͳͷ%#ʹଓ͢Δ͔ΛϞσϧʹఆٛͰ͖Δ
DPOOFDUT@UP جఈΫϥεΛෳ࡞ͯ͠Ϟσϧ ςʔϒϧ ʹΑ͍͚ͬͯ
ΊͰͨ͠
͑ʂʁ%#Λ·͍ͨͰ 5SBOTBDUJPOॲཧ͍ͨ͠ʁ
ͳͥ%#ׂ͞ΕͯΔʜʁ
ଟॏUSBOTBDUJPO USBOTBDUJPOϒϩοΫΛଟॏʹ͢Δ͜ͱͰ࣮ݱՄೳ ʮσʔλϕʔείωΫγϣϯ୯ҐʯͰτϥϯβΫγϣϯॲཧ͞ΕΔ
ଟॏUSBOTBDUJPO ϩʔϧόοΫ͍ͤͨ͞߹ʹཁҙ "DUJWF3FDPSE3PMMCBDLɹUSBOTBDUJPOΛஈ͔͠ग़Ͱ͖ͳ͍
ଟॏUSBOTBDUJPO ϩʔϧόοΫ͍ͤͨ͞߹ʹཁҙ "DUJWF3FDPSE3PMMCBDLɹUSBOTBDUJPOΛஈ͔͠ग़Ͱ͖ͳ͍ ר͖Δ
ଟॏUSBOTBDUJPO ϩʔϧόοΫ͍ͤͨ͞߹ʹཁҙ "DUJWF3FDPSE3PMMCBDLɹUSBOTBDUJPOΛஈ͔͠ग़Ͱ͖ͳ͍ ר͖Βͳ͍
ଟॏUSBOTBDUJPO શͯͷUSBOTBDUJPOϒϩοΫΛඈͼग़͍ͯ͜͠͏ 3PMMCBDLҎ֎ͷྫ֎Ͱ͋Εग़Մೳ
ऻ͍དྷΔ-FHBDZͨͪ
.Z42-;FSP%BUF ɹͷଘࡏ .Z42-Ͱ݄Λڐ༰͢Δ /05/6--੍ͷΧϥϜͰɺ/6--ͱՁͰ͋Γɺ/6--Ͱͳ͍ *4/6--ͰϚον͢Δ
*4/05/6--ͰϚον͢Δ
ରࡦʁ
Θͳ͍
42-Ϟʔυ 42-Ϟʔυ 42-ߏจͷڍಈΛΓସ͑ΒΕΔΦϓγϣϯͷΑ͏ͳͷ ʮ42-ϞʔυʯʹΑΓ;FSP%BUFېࢭͰ͖Δ جຊతʹ
҆͝৺͍ͩ͘͞ .Z42-Ҏ߱Ͱ;FSP%BUFېࢭ͕σϑΥϧτ
Λ طʹ͍ͬͯΔ ݸͷςʔϒϧͰ EFGBVMUʹར༻ ͔͠͠
ۤͷࡦ
3BJMTʹೝࣝ͞Εͳ͍ 3BJMT[FSPEBUFΛOJMͱͯ͠ѻ͏ ECTDIFNBEVNQͯ͠ग़ྗ͞Εͳ͍ʂ EFWFMPQ UFTUڥͰ%#ߏ͕࠶ݱͰ͖ͳ͍ʜʜ
ؾ߹ϞϯΩʔύον "DUJWF3FDPSEͷ4DIFNB%VNQFSʹؾ߹ͷύονΛͯΔ
*OWBMJEEFGBVMUWBMVF σϑΥϧτ͕;FSPEBUFͷΧϥϜΛؚΉςʔϒϧʹରͯ͠ "-5&35"#-&Λൃߦ͢Δͱ*OWBMJEEFGBVMUWBMVFΤϥʔͱͳΔ
42-Ϟʔυมߋ EBUBCBTFZNMͰʮݫີͳ42-ϞʔυʯΛGBMTFʹͯ͠ճආ ฐ͕େ͖͗͢ΔͷͰਅࣅ͠ͳ͍Α͏ʹʂ
͜ͷষਅࣅ͠ͳ͍Α͏ʹ ຊʹ
·ͱΊ
ՔಇதͷαʔϏεɾσʔλΛकΔ ϦϓϨΠεΔ
େม
γεςϜҠߦେม ࠓՔಇ͍ͯ͠ΔϏδωεɾϢʔβʔɾσʔλΛकΔͷ͕େલఏ ϨΨγʔίʔυͳΒ͵ɺϨΨγʔσʔλߏվળฒߦ͢Δඞཁ͋Γ ͦͷଞͷͭΒ͍ࣄྫɺΑ͖ղܾํ๏Λ͝ଘͷํ ͓͠·͠ΐ͏ʂ