Slide 1

Slide 1 text

"DUJWF3FDPSE $POOFDUJPO"EBQUFST ͷԼͷੈ ք ླྀٿେֶ޻ֶ෦߸ؗ 4BU ԭೄ3VCZձٞ 5IFVOEFSHSPVOEJO"3$POOFDUJPO"EBQUFST %JWFUPUIFSBJMTSBJMTSFQPTJUPSZ ג Ӭ࿨γεςϜϚωδϝϯτ ҏ౻ߒҰ !LPJD

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

ࠓ೔ͷ࿩

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

w %JWFUPSBJMTSBJMTSFQP w "3$POOFDUJPO"EBQUFST w 0SBDMFFOIBODFEBEBQUFS w 0SBDMFXJUI3BJMT "HFOEB ˞#BTFEPO3BJMTSD

Slide 9

Slide 9 text

Dive to rails/rails

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

AR::ConectionAdapters

Slide 17

Slide 17 text

w "3ͷϞσϧܦ༝Ͱͷݺͼग़͠ʹର͠ ͯɺ3%#.4͝ͱʹཧʹ͔ͳͬͨ42- Λ૊Έཱͯͯฦ͢໾ׂ w 3%#.4ͷ࢓༷Λલఏ͢Δɻྫ͑͹ 0SBDMFͩͱۭจࣈͱ/6--Λ۠ผ͠ ͳ͍ɺHἬ͸ࣝผࢠ͕จࣈҎԼ "3$POOFDUJPO"EBQUFST

Slide 18

Slide 18 text

SBJMTSBJMTͷςετͰ஌Δ3%#.4ͷ ࢓༷ʹΑΔৼΔ෣͍ͷҧ͍ DVSSFOU@BEBQUFS

Slide 19

Slide 19 text

rails/rails#29370

Slide 20

Slide 20 text

WTOJM

Slide 21

Slide 21 text

Ξμϓλͷࢦఆͱ 3BJMTΛىಈ࣌ͷ ৼΔ෣͍ʹ͍ͭͯ

Slide 22

Slide 22 text

w ͝ଘ஌EBUBCBTFZNMʹࢦఆ͢Δ BEBQUFSͱ͸Կͳͷ͔͍·Ұ౓ $POOFDUJPO"EBQUFSͷબ୒ development: adapter: mysql2 development: adapter: postgresql development: adapter: sqlite3 development: adapter: oracle_enhanced

Slide 23

Slide 23 text

w EBUBCBTFZNMͰࢦఆͨ͠Ξμϓλ͕ SBJMTDSBJMTTͰཁٻ͞ΕΔἬͷྲྀΕ "33BJMUJFJOJUJBMJ[FS "3$POOFDUJPO)BOEMJOHFTUBCMJTI@DPOOFDUJ PO "3$POOFDUJPO"EBQUFST$POOFDUJPO4QFDJpD BUJPOTQFD FTUBCMJTI@DPOOFDUJPO

Slide 24

Slide 24 text

"33BJMUJFJOJUJBMJ[FS IUUQTHJUIVCDPNSBJMTSBJMTCMPCWSDBDUJWFSFDPSEMJCBDUJWF@SFDPSESBJMUJFSC-

Slide 25

Slide 25 text

"3$POOFDUJPO)BOEMJOH
 FTUBCMJTI@DPOOFDUJPO IUUQTHJUIVCDPNSBJMTSBJMTCMPCWSDBDUJWFSFDPSEMJCBDUJWF@SFDPSEDPOOFDUJPO@IBOEMJOHSC-

Slide 26

Slide 26 text

"3$POOFDUJPO"EBQUFST
 $POOFDUJPO4QFDJpDBUJPOTQFD IUUQTHJUIVCDPNSBJMTSBJMTCMPCWSDBDUJWFSFDPSEMJCBDUJWF@SFDPSEDPOOFDUJPO@BEBQUFSTDPOOFDUJPO@TQFDJpDBUJPOSC-

Slide 27

Slide 27 text

w EBUBCBTFZNM΁ͷࢦఆBEBQUFS ΛݩʹΞμϓλΛSFRVJSF͢Δ "3$POOFDUJPO"EBQUFST
 $POOFDUJPO4QFDJpDBUJPOTQFD path_to_adapter = "active_record/connection_adapters/#{spec[:adapter]}_adapter" begin require path_to_adapter rescue LoadError => e (snip) end (snip) adapter_method = "#{spec[:adapter]}_connection" IUUQTHJUIVCDPNSBJMTSBJMTCMPCWSDBDUJWFSFDPSEMJCBDUJWF@SFDPSEDPOOFDUJPO@BEBQUFSTDPOOFDUJPO@TQFDJpDBUJPOSC-- SFRVJSF

Slide 28

Slide 28 text

SFRVJSF͞ΕΔ$PSFBEBQUFST

Slide 29

Slide 29 text

w EBUBCBTFZNM΁ͷࢦఆBEBQUFS ΛݩʹίωΫγϣϯϝιου໊Λܾఆ "3$POOFDUJPO"EBQUFST
 $POOFDUJPO4QFDJpDBUJPOTQFD path_to_adapter = "active_record/connection_adapters/#{spec[:adapter]}_adapter" begin require path_to_adapter rescue LoadError => e (snip) end (snip) adapter_method = "#{spec[:adapter]}_connection" IUUQTHJUIVCDPNSBJMTSBJMTCMPCWSDBDUJWFSFDPSEMJCBDUJWF@SFDPSEDPOOFDUJPO@BEBQUFSTDPOOFDUJPO@TQFDJpDBUJPOSC-- @DPOOFDUJPO

Slide 30

Slide 30 text

IUUQTHJUIVCDPNSBJMTSBJMTCMPCWSDBDUJWFSFDPSEMJCBDUJWF@SFDPSEDPOOFDUJPO@BEBQUFSTNZTRM@BEBQUFSSC- @DPOOFDUJPO

Slide 31

Slide 31 text

IUUQTHJUIVCDPNSBJMTSBJMTCMPCWSDBDUJWFSFDPSEMJCBDUJWF@SFDPSEDPOOFDUJPO@BEBQUFSTNZTRM@BEBQUFSSC- @DPOOFDUJPO %#$MJFOU

Slide 32

Slide 32 text

w 3VCZΦϒδΣΫτܦ༝Ͱ.Z42-Λૢ࡞͢Δ ΫϥΠΞϯτͱͳΔυϥΠό(FN require "mysql2" client = Mysql2::Client.new( :host => "localhost", :username => "root" ) results = client.query( "SELECT * FROM users WHERE group=‘githubbers'" ) results.each do |row| puts row["id"] # row[“id”].is_a? Integer if row["dne"] # non-existant hash entry is nil puts row["dne"] end end .ZTRMHFN IUUQTHJUIVCDPNCSJBONBSJPNZTRMVTBHF

Slide 33

Slide 33 text

"3ϞσϧͱυϥΠόͷதؒ૚ $POOFDUJPO"EBQUFST "CTUSBDU"EBQUFS $POOFDUJPO "EBQUFST-BZFS "3.PEFM -BZFS %BUBCBTF $MJFOU-BZFS ˞ਤྫ͸.Z42-Ξμϓλ (FNpMFʹࢦఆ ͍ͯ͠Δͷ͸͜Ε $POOFDUJPO"EBQUFST "CTUSBDU.ZTRM"EBQUFS $POOFDUJPO"EBQUFST .ZTRM"EBQUFS HFN NZTRM .Z42- %BUBCBTF -BZFS "3

Slide 34

Slide 34 text

"3ϞσϧͱυϥΠόͷதؒ૚ $POOFDUJPO "EBQUFST-BZFS "3.PEFM -BZFS %BUBCBTF $MJFOU-BZFS ˞ਤྫ͸1PTUHSF42-Ξμϓλ (FNpMFʹࢦఆ ͍ͯ͠Δͷ͸͜Ε $POOFDUJPO"EBQUFST 1PTUHSF42-"EBQUFS HFN QH 1PTUHSF42- %BUBCBTF -BZFS $POOFDUJPO"EBQUFST "CTUSBDU"EBQUFS "3

Slide 35

Slide 35 text

"3ϞσϧͱυϥΠόͷதؒ૚ $POOFDUJPO "EBQUFST-BZFS "3.PEFM -BZFS %BUBCBTF $MJFOU-BZFS ˞ਤྫ͸42-JUFΞμϓλ (FNpMFʹࢦఆ ͍ͯ͠Δͷ͸͜Ε $POOFDUJPO"EBQUFST 42-JUF"EBQUFS HFN TRMJUF 42-JUF %BUBCBTF -BZFS $POOFDUJPO"EBQUFST "CTUSBDU"EBQUFS "3

Slide 36

Slide 36 text

w EBUBCBTFZNMʹج͍ͮͨ $POOFDUJPO"EBQUFSTΛ࢖͏ w $POOFDUJPO"EBQUFSͷઌͷ઀ଓ ͸σʔλϕʔευϥΠόHFNͱͳΔ w NZTRM QH TRMJUFͳͲ "3ͷσʔλϕʔε઀ଓͷߏ଄

Slide 37

Slide 37 text

w SBJMTSBJMTϦϙδτϦͰϝϯςφ ϯε͞Ε͍ͯΔΞμϓλΛࢦ͢ w ݱࡏ.Z42- NZTRM 1PTUHSF42-42-JUFͷͭ w 3BJMTͷ$*ϚτϦοΫεʹೖͬͯΔ $PSFBEBQUFST

Slide 38

Slide 38 text

w ֎෦(FNͱͯ͠ཁٻ͞ΕΔΞμϓλ w 0SBDMF w 42-4FSWFS w 'JSFCJSE w FUD FUD SEQBSUZBEBQUFST

Slide 39

Slide 39 text

w 3BJMTຊମʹόϯυϧ͞Ε͍ͯΔίΞ ΞμϓλҎ֎΋͜͜ͰSFRVJSFͯ͠Δ "3$POOFDUJPO"EBQUFST
 $POOFDUJPO4QFDJpDBUJPOTQFD path_to_adapter = "active_record/connection_adapters/#{spec[:adapter]}_adapter" begin require path_to_adapter rescue LoadError => e (snip) end (snip) adapter_method = "#{spec[:adapter]}_connection" IUUQTHJUIVCDPNSBJMTSBJMTCMPCWSDBDUJWFSFDPSEMJCBDUJWF@SFDPSEDPOOFDUJPO@BEBQUFSTDPOOFDUJPO@TQFDJpDBUJPOSC-- SFRVJSF ࠶ܝ

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

Oracle enhanced adapter

Slide 43

Slide 43 text

೥Ҏ߱ͷ։ൃऀ

Slide 44

Slide 44 text

w SBJMTSBJMTʹଘࡏ͍ͯͨ͠ 0SBDMF"EBQUFSͷ֦ு(FN w &EHF3BJMTʹ௥ਵ͍ͯ͠Δ w +%#$Λ࢖ͬͨ઀ଓΛαϙʔτͯ͠Δ w ͭ·Γ+3VCZαϙʔτΛ͍ͯ͠Δ 0SBDMFFOIBODFEBEBQUFS

Slide 45

Slide 45 text

0$*+%#$

Slide 46

Slide 46 text

w ੜ੒͢Δ$POOFDUJPOΛৼΓ෼͚͍ͯΔ 0SBDMF&OIBODFE$POOFDUJPO IUUQTHJUIVCDPNSTJNPSBDMFFOIBODFECMPCWSDMJCBDUJWF@SFDPSEDPOOFDUJPO@BEBQUFSTPSBDMF@FOIBODFEDPOOFDUJPOSC

Slide 47

Slide 47 text

w ৼΓ෼͚ͷλω͸36#:@&/(*/& 03"$-&@&/)"/$&%@$0//&$5*0/ IUUQTHJUIVCDPNSTJNPSBDMFFOIBODFECMPCWSDMJCBDUJWF@SFDPSEDPOOFDUJPO@BEBQUFSTPSBDMF@FOIBODFEDPOOFDUJPOSC

Slide 48

Slide 48 text

0$*$POOFDUJPO .3* $POOFDUJPO "EBQUFST-BZFS "3.PEFM -BZFS %BUBCBTF $MJFOU-BZFS ˞ਤྫ͸0SBDMFFOIBODFE 0SBDMF&OIBODFE 0$*$POOFDJUPO Ͱܨ͍͛ͯΔ $POOFDUJPO"EBQUFST 0SBDMF&OIBODFE"EBQUFS 0SBDMF %BUBCBTF -BZFS (FNpMFʹࢦఆ ͍ͯ͠Δͷ͸͜Ε HFN SVCZPDJ $POOFDUJPO"EBQUFST "CTUSBDU"EBQUFS "3

Slide 49

Slide 49 text

+%#$$POOFDUJPO +3VCZ $POOFDUJPO "EBQUFST-BZFS "3.PEFM -BZFS %BUBCBTF $MJFOU-BZFS ˞ਤྫ͸0SBDMFFOIBODFE 0SBDMF&OIBODFE +%#$$POOFDJUPO Ͱܨ͍͛ͯΔ $POOFDUJPO"EBQUFST 0SBDMF&OIBODFE"EBQUFS 0SBDMF %BUBCBTF -BZFS $-"441"5)ʹ +"3Λࢦఆ KBS PKECDKBS $POOFDUJPO"EBQUFST "CTUSBDU"EBQUFS "3

Slide 50

Slide 50 text

w KSVCZBDUJWFSFDPSEKECDBEBQUFS Ͱ؅ཧ͞Ε͍ͯΔ <ิ଍>0SBDMFҎ֎ͷ+%#$αϙʔτ

Slide 51

Slide 51 text

A development of Oracle enhanced adapter

Slide 52

Slide 52 text

w */%&9ʹؔ͢Δ5"#-&41"$&Λࢦఆ Ͱ͖ΔΑ͏ʹରԠͨ͠<> w SBJMTECTDIFNBMPBEͷϚϧνΠϯ αʔτʹରԠͨ͠<> w 3VCZ0$*Λ3VCZͷ #JH%FDJNBMରԠ ࢥ͍ग़ͷύονબ

Slide 53

Slide 53 text

w */%&9ʹؔ͢Δ5"#-&41"$&Λࢦఆ Ͱ͖ΔΑ͏ʹରԠͨ͠<> w SBJMTECTDIFNBMPBEͷϚϧνΠϯ αʔτʹରԠͨ͠<> w 3VCZ0$*Λ3VCZͷ #JH%FDJNBMରԠ ͸͡ΊͯͷΞμϓλύον

Slide 54

Slide 54 text

rsim/oracle-enhanced#1028

Slide 55

Slide 55 text

w 0SBDMFͰ͸5"#-&41"$&Ͱςʔϒϧ ΍ΠϯσοΫεͷอଘྖҬࢦఆ͕Ͱ͖Δ w 0SBDMFFOBIBODFEBEBQUFSͰ͸ EFGBVMU@UBCMFTQBDFTͰࢦఆՄೳ w QSJNBSZLFZʹରͯ͠͏·͘ޮ͔ͳ ͔ͬͨͷͰ௚ͨ͠ 5"#-&41"$&ͷࢦఆ

Slide 56

Slide 56 text

w ౰࣌ࣗ৴͕ͳ͘*TTVFͰ͓࢕͍ खݩʹϞϯΩʔύον͸͋ͬͨ

Slide 57

Slide 57 text

w 54@*/%&9Ͱͳ͘54@%"5"ʹೖͬͯͨ ໰୊΁ͷमਖ਼ύον 0QFOB13

Slide 58

Slide 58 text

"3.JHSBUJPOͷDSBFUF@UBCMF΁ͷ SEQBSUZΞμϓλ࣮૷΁ͷมߋ தུ ௥Ճ IUUQTHJUIVCDPNSTJNPSBDMFFOIBODFECMPCWSDMJCBDUJWF@SFDPSEDPOOFDUJPO@BEBQUFSTPSBDMF@FOIBODFETDIFNB@TUBUFNFOUTSC-

Slide 59

Slide 59 text

w "-5&3*/%&93*-%5"#-&41"$&Λ ࣮ߦ͢ΔϝιουΛఆ͍ٛͯ͠Δ ADSFBUF@UBCMFA͔ΒͷϑοΫ

Slide 60

Slide 60 text

w ϦϙδτϦΛԣஅͨ͠มߋ͕ඞཁͩͬͨ $*͕ͱ͓Βͳ͍

Slide 61

Slide 61 text

w 64&34Ͱͳ͘4:45&.ʹอଘ͞Εͯͨ w %&'"6-55"#-&41"$&ͷมߋ w 0SBDMF޲͚ͷSBJMTEFWCPY΁ͷ13 ZBIPOEBSBJMTEFWCPY

Slide 62

Slide 62 text

w 3%#.4΁ͷΞμϓλ։ൃͳͷͰ 3%#.4ʹԠͨ͡։ൃ؀ڥΛ੔උ͢Δ ඞཁ͕͋Δ w ZBIPOEBSBJMTEFWCPY͕ 0SBDMF޲͚ͷ։ൃ؀ڥͱͳΔ w $*ͱ߹Θͤͯ͜ͷ؀ڥΛ࢖͏ͷ͕ྑ͍ ։ൃ؀ڥ΁ͷ஌ݟΛಘΔ

Slide 63

Slide 63 text

Oracle with Rails 6.0

Slide 64

Slide 64 text

w 3BJMTҎલ͸ϓϥΠϚϦΩʔ*%ͷ ࠾൪ʹ͍ͭͯ4&26&/$&Ͱ෷͍ग़͞ Ε͍ͯΔ w 3BJMTҎ߱͸0SBDMFDͷ *EFOUJUZ$PMVNOΛ࢖͏ํ਑Ͱݕ౼ w OFYUWBMͱ͍͏1P$ͷϦϒʔτ 1P$*EFOUJUZ

Slide 65

Slide 65 text

w 3BJMTҎલͷσϑΥϧτ஋͸ EFGBVMU@TFRVFODF@TUBSU@WBMVF w 3BJMTҎޙͷσϑΥϧτ஋͸ EFGBVMU@TFRVFODF@TUBSU@WBMVF ʹͳΓଞͷΞμϓλͱಉ͡ڍಈʹ $IBOHFAEFGBVMU@TFRVFODF@TUBSU@WBMVFA GSPNUP

Slide 66

Slide 66 text

w SBJMTECTUSVDUVSFEVNQͷࡍ ʹσϑΥϧτͰ7*&8͕μϯϓ͞Ε ΔΑ͏ʹͳΔ &YUSBDUWJFXTUPEC TUSVDUVSFTRMCZEFGBVMU

Slide 67

Slide 67 text

w 0SBDMF͸%"5"#"4&-*/,ͱ͍͏ ଞͷ%#ͷσʔλΛҾ͘ػߏ͕͋Γ 3BJMTܥ0SBDMFΞμϓλἬαϙʔτ w 3BJMTҎޙ͸3BJMTͷෳ਺%#ର Ԡʹ೚ͤΔ͜ͱʹͳΓػೳ࡟আ͢Δํ ਑ SBJMTSBJMT΋ࢀর %SPQEBUBCBTFMJOLTVQQPSU

Slide 68

Slide 68 text

%SPQEBUBCBTFMJOLTVQQPSU

Slide 69

Slide 69 text

w "3#BTFDPOOFDUJPOUBCMFTͷ ໭Γ஋ʹؚΊͯΔϚςϏϡʔΛ֎͠ςʔ ϒϧͷΈฦ͢Α͏ʹ͢Δ͔Ͳ͏͔ʁ w 1PTUHSF42-Ξμϓλʹ͓͚Δಉϝ ιου͕ϚςϏϡʔΛฦ͔͢Ͳ͏͔ʹ ΑΔ (JU)VCίϝϯτௐ΂ &YDMVEFANBUFSJBMJ[FE@WJFXTA GSPNAUBCMFTA

Slide 70

Slide 70 text

w 0SBDMFD3ҎԼͰ͸ΧϥϜ໊ͳ ͲࣝผࢠʹόΠτҎԼͷ੍ݶ͕͋Δ w SBJMTSBJMTͷ"3ͷҰ෦ͷςετ͕ 0SBDMFͰམͪΔ͍ͪཁҼͰ΋͋Δ w 0SBDMFD3Ҏ্͸όΠτ ·Ͱͷ֦ு͞ΕΔ͚ͲͲ͏͢Δʁ -POHJEFOUJpFSTTVQQPSU

Slide 71

Slide 71 text

+3VCZ+%#$TVQQPSUT0SBDMFD PSIJHIFS1%# 1MVHHBCMFEBUBCBTF

Slide 72

Slide 72 text

Oracle enhanced 6.0 may require Oracle 12c or higher

Slide 73

Slide 73 text

w ਓྨͰ΋ݟ͍ͯΔਓ͕ݶΒΕ͍ͯΔͱ͍͏ $POOFDUJPO"EBQUFSTͷ໾ׂͱߏ੒ͱ ϦϙδτϦͰͷ৔ॴʹ͍ͭͯ࿩͠·ͨ͠ w "SFMपล͸೉͍͠ͷͰׂѪ͍ͯ͠·͕͢ɺ ͜ͷ͋ͨΓ৮ΕΔͱ͔ͳΓڧ͍ͱࢥ͍·͢ w LBNJQP͞ΜͱZBIPOEB͞Μ͸͍͢͝ਓ ͓ΘΓʹ

Slide 74

Slide 74 text

No content