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
270
2
Share
Rails産でないDBを Railsに引っ越すHACK - Omotesando.rb #110
Omotesando.rb #110 のLT資料です
「Rails産でないDBをRailsに引っ越すHACK」
lni_T
June 05, 2025
More Decks by lni_T
See All by lni_T
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
3
900
ruby.wasmとWebSocketで遊ぼう!
lnit
0
230
ActiveRecordの力でDBのメタデータを迅速に解析する
lnit
6
3.1k
ruby.wasm × Service Workerでサーバーのいらないモックサーバーを作る
lnit
0
410
Railsアプリの仕様書を一瞬で作りたい話 - Omotesando.rb #99
lnit
1
410
ruby.wasm 最前線 2024 - wasmでMockServerをつくる #rubykaigi
lnit
2
4.3k
Turbolinksアレルギー患者に捧げるTurbo & Stimulusでの時短実装術 / Kaigi on Rails 2023
lnit
4
6.1k
ruby.wasmでブラウザを酷使してみよう / 2023-MatsueRubyKaigi
lnit
0
1.8k
ブラウザで「今すぐ」gemを読み込む方法 / Load-gem-from-browser-JUST-NOW
lnit
0
1.5k
Other Decks in Programming
See All in Programming
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
2
470
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
260
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
280
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
140
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
420
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
720
AIと共にエンジニアとPMの “二刀流”を実現する
naruogram
0
110
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
1.4k
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
310
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
4
2.2k
Nuxt Server Components
wattanx
0
220
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
110
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Fireside Chat
paigeccino
42
3.9k
30 Presentation Tips
portentint
PRO
1
270
A designer walks into a library…
pauljervisheath
210
24k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.1k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
Leo the Paperboy
mayatellez
5
1.6k
Exploring anti-patterns in Rails
aemeredith
2
300
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
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ʹͯ͠ճආ ฐ͕େ͖͗͢ΔͷͰਅࣅ͠ͳ͍Α͏ʹʂ
͜ͷষਅࣅ͠ͳ͍Α͏ʹ ຊʹ
·ͱΊ
ՔಇதͷαʔϏεɾσʔλΛकΔ ϦϓϨΠεΔ
େม
γεςϜҠߦେม ࠓՔಇ͍ͯ͠ΔϏδωεɾϢʔβʔɾσʔλΛकΔͷ͕େલఏ ϨΨγʔίʔυͳΒ͵ɺϨΨγʔσʔλߏվળฒߦ͢Δඞཁ͋Γ ͦͷଞͷͭΒ͍ࣄྫɺΑ͖ղܾํ๏Λ͝ଘͷํ ͓͠·͠ΐ͏ʂ