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
Ruby on Railsの開発環境をつくってみよう! / GMO HosCon #19 Tokyo
Search
Ken’ichiro Oyama
July 17, 2018
900
11
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ruby on Railsの開発環境をつくってみよう! / GMO HosCon #19 Tokyo
## サポート資料
https://gist.github.com/k1LoW/1cb5d9bba21fea7e31ea9bb52dbf6817
Ken’ichiro Oyama
July 17, 2018
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
Introducing RFC9111 / YAPC::Fukuoka 2025
k1low
2
5.5k
Design and implementation of "Markdown to Google Slides" / phpconfuk 2025
k1low
1
950
analysis パッケージの仕組みの上でMulti linter with configを実現する / Go Conference 2025
k1low
1
780
Flight recorder at the application layer (NOT the FlightRecoder newly added at Go 1.25) / Fukuoka.go #22
k1low
0
170
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
12
6.3k
Parsing HCL/CUE / Fukuoka.go #21
k1low
0
11k
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
2
450
Cleanup handling in Go / Go Conference 2024
k1low
7
4.1k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
18
12k
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
950
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
240
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
160
Balancing Empowerment & Direction
lara
6
1.2k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
370
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
580
Faster Mobile Websites
deanohume
310
32k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Practical Orchestrator
shlominoach
191
11k
Transcript
ॳ৺ऀ͚3BJMTೖϋϯζΦϯ ϚωʔδυΫϥυνʔϜ(.01FQBCP *OD ୈճ(.0ϗείϯ 3VCZPO3BJMTͷ ։ൃڥΛͭͬͯ͘ΈΑ͏ʂ
ϋογϡλά IPTDPONDMPMJQPQ
ࠓճͷϋϯζΦϯͷඪ
3VCZPO3BJMTͷ ؆୯ͳΞϓϦέʔγϣϯΛ Πϯλʔωοτʹެ։͢Δ
ͭͷΩʔϫʔυ ϩϦϙοϓʂϚωʔδυΫϥυ λʔϛφϧ ύοέʔδϚωʔδϟ)PNFCSFX ΤσΟλ"UPN ϓϩάϥϛϯάݴޠ3VCZ όʔδϣϯཧπʔϧ(JU 8FCϑϨʔϜϫʔΫ3VCZPO3BJMT
3VCZPO3BJMTΞϓϦΛ։ൃͯ͠Πϯλʔωοτʹެ։͢ΔΠϝʔδ SQLite3
ͭͷΔ͜ͱ ϩϦϙοϓʂϚωʔδυΫϥυͰΞΧϯτΛ࡞͠Α͏ λʔϛφϧΛىಈͯ͠৮ͬͯΈΑ͏ ύοέʔδϚωʔδϟ)PNFCSFXΛΠϯετʔϧͯ͠ΈΑ͏ )PNFCSFXΛͬͯΤσΟλ"UPNɺϓϩάϥϛϯάݴޠ3VCZɺόʔδϣϯཧπʔϧ(JUΛ Πϯετʔϧͯ͠ΈΑ͏ 3VCZPO3BJMTΞϓϦΛखݩͰىಈͯ͠ΈΑ͏ 3VCZPO3BJMTΞϓϦΛϚωʔδυΫϥυʹɺϚωʔδυΫϥυͷΈΛͬͯΞοϓϩʔ υ σϓϩΠ
ͯ͠ΈΑ͏ 3VCZPO3BJMTΞϓϦΛमਖ਼ͯ͠ɺϚωʔδυΫϥυʹөͯ͠ΈΑ͏
ϩϦϙοϓʂϚωʔδυΫϥ υͰΞΧϯτΛ࡞͠Α͏
ϩϦϙοϓʂϚωʔδυΫϥυͰΞΧϯτΛ࡞͠Α͏ wࠓճ։ൃڥʹϩϦϙοϓʂϚωʔδυΫϥυΛ׆༻͠·͢ wʮϚωʔδυΫϥυʯͰݕࡧɻNDMPMJQPQKQͷϦϯΫΛΫϦοΫ wʮࠓ͙͢͡ΊΔʯΛΫϦοΫ ɹɹɹϚωʔδυΫϥυ ݕࡧΩʔϫʔυͰ͢ɻ༗ޮ׆༻͍ͯͩ͘͠͞
ϝʔϧΞυϨεͱύεϫʔυΛೖྗ
ϝʔϧΞυϨεͱύεϫʔυΛೖྗ wಧ͍ͨϝʔϧΛΫϦοΫͯ͠ೝূ͠·͠ΐ͏
ϓϩδΣΫτΛՃͯ͠ΈΑ͏ wʮϓϩδΣΫτ࡞ʹਐΉʯΛΫϦοΫ
ϓϩδΣΫτΛՃͯ͠ΈΑ͏ w ΞϓϦέʔγϣϯબͰ3VCZPO3BJMTΛΫϦοΫ w ΧελϜυϝΠϯͱσʔλϕʔεͷύεϫʔυΛೖྗ w σʔλϕʔεͷύεϫʔυϝϞ͓͍͍ͯͯͩ͘͠͞
ϓϩδΣΫτΛՃͯ͠ΈΑ͏ wʮ࡞͢ΔʯΛΫϦοΫ
ϓϩδΣΫτΛՃͯ͠ΈΑ͏ wίϯςφͷ४උΛͪ·͢ɻɻɻ
ϓϩδΣΫτΛՃͯ͠ΈΑ͏ Ͱ͖ͨʂ
λʔϛφϧΛىಈͯ͠৮ͬͯΈΑ ͏
λʔϛφϧͬͯԿʁ w จࣈͰ.BD#PPLͦͷଞ͍Ζ͍ΖϓϩάϥϜΛૢ࡞͢ΔͨΊͷϞϊɾπʔϧɾΞϓ Ϧέʔγϣϯ ◦ CUIʢΩϟϥΫλʔɾϢʔβɾΠϯλʔϑΣʔε : จࣈUIʣ ◦ ରʹϚεͰΫϦοΫͨ͠Γը໘Ͱͷૢ࡞͕͋ΔͷGUIʢάϥϑΟΧϧɾϢʔ
βɾΠϯλʔϑΣʔε : άϥϑΟΧϧͳUIʣ • ίϚϯυεΫϦϓτʢϓϩάϥϜ͕ղऍͰ͖ΔจࣈྻʣΛೖྗ͢Δ͜ͱͰ༷ʑͳૢ ࡞͕Ͱ͖Δ • ͳΜͰλʔϛφϧʁ ◦ ίϚϯυ͕จࣈͳͷͰϋοΩϦ͍ͯ͠Δͷ͕·Ε͍ͯΔ ◦ ʮ**ͱ͍͏ίϚϯυΛ࣮ߦͯ͠Έͯʯ ɹɹɹλʔϛφϧɺ#BTI
λʔϛφϧΛىಈͯ͠ΈΑ͏ w.BDͷӈ্ͷ؟ڸʢݕࡧʣϘλϯΛΫϦοΫ 4QPUMJHIU ɹɹɹ4QPUMJHIU
λʔϛφϧΛىಈͯ͠ΈΑ͏ wʮλʔϛφϧʯͱݕࡧͯ͠&OUFSىಈ
λʔϛφϧΛىಈͯ͠ΈΑ͏
λʔϛφϧͰૢ࡞ͯ͠ΈΑ͏ wQXE wDE wMT wPQFO ࠷ޙʹυοτ͕͋ΔͷͰҙ w'JOEFSͱ࿈ܞ ɹɹɹ.BDίϚϯυzɺz-JOVYίϚϯυ
5JQTίϚϯυΛ࣮ߦͨ͠ΒԿ͔ग़ͨ w߄ͯͣʹಡΜͰΈ·͠ΐ͏ w؆୯ͳӳޠͰ͋Δ͜ͱ͕ଟ͍Ͱ͢ wʮ͏·͍͍ͬͯ͘ΔΑʯͱ͍͏ϝοηʔδ͔͠Ε·ͤΜ͠ wʮΤϥʔͩΑʯͱ͍͏ϝοηʔδ͔͠Ε·ͤΜ w͠ɺΤϥʔͷͱ͖࣍ʹਐ·ͣελοϑΛݺΜͰ͍ͩ͘͞
5JQTίϐʔϖʔετͱλʔϛφϧͰͷ࣮ߦ wλʔϛφϧͰίϚϯυΛೖྗ͝&OUFSʢվߦʣΛͨ͠Β࣮ߦ w͠ɺվߦ͞Ε͍ͯΔεΫϦϓτΛλʔϛφϧʹίϐʔͯ͠షΓ͚ ͨΒ࣮ߦ͞ΕΔͷͰҙ͠·͠ΐ͏
5JQT'JOEFS͔ΒλʔϛφϧΛ։͚ΔΑ͏ʹ͠Α͏ w PQFOίϚϯυͰλʔϛφϧ͔Β'JOEFSΛ։͚ ͨͷͰɺʮٯʯΛͰ͖ΔΑ͏ʹ͠·͠ΐ͏ w <γεςϜڥઃఆ><ΩʔϘʔυ><γϣʔ τΧοτ>λϒͰ<αʔϏε>ʹ͋Δ<ϑΥϧμʹ৽ نλʔϛφϧ>ʹνΣοΫΛ͍ΕΔ
ύοέʔδϚωʔδϟ )PNFCSFXΛ Πϯετʔϧͯ͠ΈΑ͏
ύοέʔδϚωʔδϟ)PNFCSFXͬͯԿʁ wΤϯδχΞ͕͏"QQ4UPSFΈ͍ͨͳͷʢ.BD༻ʣ wओʹλʔϛφϧͰ࣮ߦ͠·͢ wλʔϛφϧͰ͏ίϚϯυ͔ΒΤσΟλͷΑ͏ͳΞϓϦέʔγϣϯ· Ͱ؆୯ʹΠϯετʔϧΞϯΠϯετʔϧͰ͖·͢ ɹɹɹl.BD)PNFCSFX
)PNFCSFXΛΠϯετʔϧͯ͠ΈΑ͏ wλʔϛφϧͰ YDPEFTFMFDUJOTUBMM Λ࣮ߦ w࣮ߦͰ͖ͳ͍߹"QQ4UPSFͰ9$PEFΛΠϯετʔϧ wʮ)PNFCSFXʯͰݕࡧ wIUUQTCSFXTIJOEFY@KBͷΠϯετʔϧεΫϦϓτΛίϐʔͯ͠λʔ ϛφϧʹϖʔετ࣮ͯ͠ߦ
)PNFCSFXΛͬͯ ΤσΟλ"UPNɺ ϓϩάϥϛϯάݴޠ3VCZɺ όʔδϣϯཧπʔϧ(JUΛ Πϯετʔϧͯ͠ΈΑ͏
ΤσΟλ"UPNͷΠϯετʔϧ > brew cask install atom ɹɹɹΤσΟλ"UPN
࿅शΤσΟλ"UPN wλʔϛφϧͰͲ͔͜ͷσΟϨΫτϦʹҠಈͯ͠ɺͦ͜ʹ"UPNͰϑΝ ΠϧΛ࡞ͯ͠Έ·͠ΐ͏ •͏ίϚϯυ: •cd •open . •atom ϑΝΠϧ໊
ϓϩάϥϛϯάݴޠ3VCZͷΠϯετʔϧ > brew install readline ruby-build rbenv > brew install
mysql # MySQLͷΠϯετʔϧ > echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile > echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile > source ~/.bash_profile > rbenv install 2.5.1 > rbenv global 2.5.1 > ruby -v ɹɹɹl.BD3VCZSCFOWz
όʔδϣϯཧπʔϧ(JUͷΠϯετʔϧ > brew install git > git config --global user.name
"[໊લΛೖΕ͍ͯͩ͘͞]" > git config --global user.email "[ϝʔϧΞυϨεΛೖΕ͍ͯͩ͘͞]" > git --version ɹɹɹ(JU
3VCZPO3BJMTΞϓϦΛ खݩͰىಈͯ͠ΈΑ͏
3VCZPO3BJMTΛ͏લͷલ४උ ඞཁͳ3VCZͷίϚϯυΛΠϯετʔϧ > gem install bundler --no-document > gem install
rails --no-document ɹɹɹ3VCZ#VOEMFS3VCZHFN
3VCZPO3BJMTΞϓϦΛ։ൃͯ͠Πϯλʔωοτʹެ։͢ΔΠϝʔδ SQLite3
3VCZPO3BJMTϓϩδΣΫτΛ࡞͠Α͏ wͭͭͷϓϩδΣΫτ͕8FCΞϓϦέʔγϣϯ wେ͖͍αʔϏεͩͱͭҎ্ͷϓϩδΣΫτ͔Βߏ͞ΕΔ͜ͱ wࠓճIPTDPOͱ͍͏໊લͷϓϩδΣΫτΛͭ࡞͠·͢ > cd [Ͳ͔͜Կ͔࡞ͬͯྑ͍σΟϨΫτϦ] > rails new
hoscon
σʔλϕʔεͷଓઃఆΛ͠Α͏ > cd hoscon/ > atom config/database.yml
σʔλϕʔεͷଓઃఆΛ͠Α͏
σʔλϕʔεͷଓઃఆΛ͠Α͏ wෆඞཁͳλϒΛফ͢ͱ͜ͷ Α͏ʹͳΓ·͢
σʔλϕʔεͷଓઃఆΛ͠Α͏ default: &default adapter: sqlite3 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5
} %> timeout: 5000 development: <<: *default database: db/development.sqlite3 test: <<: *default database: db/test.sqlite3 production: <<: *default adapter: mysql2 database: [ϚωΫϥͷϓϩδΣΫτը໘Λ֬ೝ] username: [ϚωΫϥͷϓϩδΣΫτը໘Λ֬ೝ] password: [ϝϞͨ͠σʔλϕʔεͷύεϫʔυ] host: [ϚωΫϥͷϓϩδΣΫτը໘Λ֬ೝ]
σʔλϕʔεͷଓઃఆΛ͠Α͏ wຊ൪ͷσʔλϕʔεઃఆϚωʔδυΫϥυͷϓϩδΣΫτը໘Λ ֬ೝ
(FNpMFͷઃఆʹANZTRMAΛՃ͠Α͏ wࠓճϚωʔδυΫϥυͰ.Z42-ʹଓ͢ΔͷͰNZTRMͱ͍͏ HFNΛՃ͠·͢ʢຊ൪ڥ͚ͩʣ > cd hoscon/ > atom Gemfile #
ඌʹҎԼΛՃ # gem 'mysql2' > bundle install ɹɹɹ(FNpMFl3BJMTNZTRM
3VCZPO3BJMTΛىಈͯ͠ΈΑ͏ wϒϥβͰIUUQMPDBMIPTU ʹΞΫηεͰ͖·͢ > cd hoscon/ > rails server #
Ctrl+C ͰऴྃͰ͖·͢ ɹɹɹlSBJMTTFSWFSz
ϓϩδΣΫτͷιʔείʔυΛίϛοτ͠Α͏ wόʔδϣϯཧπʔϧ(JUΛར༻ͯ͠ࠓ·ͰͷιʔείʔυΛهʢί ϛοτʣ͠·͢ > git init # σΟϨΫτϦΛGitͰཧ͢ΔΑ͏ʹઃఆ > git
add . # શͯͷՃͯ͠Α͍ϑΝΠϧΛGitʹཧͤ͞Δ > git commit -m 'My First Commit’ # ίϛοτ > git log # ίϛοτͷϩάΛ֬ೝ ɹɹɹlHJUJOJUlHJUMPHz
ιʔείʔυΛमਖ਼ͯ͠ίϛοτ͠Α͏ wϒϥβͰIUUQMPDBMIPTUJEFBT ʹΞΫηεͯ͠ΈΑ͏ > rails generate scaffold idea name:string description:text
picture:string # ideas ςʔϒϧΛ࡞ͬͯૢ࡞͢ΔͨΊͷίʔυΛੜ > rails db:migrate # ideas ςʔϒϧΛ࡞ > rails server # αʔόΛىಈ ɹɹɹlSBJMTίϚϯυzl$36%zlTDB⒎PMEz
ιʔείʔυΛमਖ਼ͯ͠ίϛοτ͠Α͏ wSBJMTHFOFSBUFͰࣗಈͰߦΘΕͨमਖ਼Λ(JUΛར༻ͯ֬͠ೝɾه ʢίϛοτʣ͠Α͏ > git status # ιʔείʔυͷมߋঢ়ଶΛ֬ೝͰ͖·͢ > git
diff # ιʔείʔυͷࠩΛ֬ೝͰ͖·͢ > git add . > git commit -m 'My Second Commit' > git log ɹɹɹl(JUίϚϯυz
3VCZPO3BJMTΞϓϦΛ ϚωʔδυΫϥυʹɺ ϚωʔδυΫϥυͷΈΛͬ ͯΞοϓϩʔυ σϓϩΠ ͯ͠ΈΑ ͏
σϓϩΠલͷલ४උ 44)ͷެ։伴ͷઃఆ wϚωʔδυΫϥυʹ44)ͰଓͰ͖ΔΑ͏ʹઃఆ͠·͠ΐ͏ wϚωʔδυΫϥυ44)ίϚϯυͷ෦Λίϐʔͯ͠λʔϛφϧͰ࣮ ߦͯ͠Έ·͠ΐ͏
σϓϩΠલͷલ४උ 44)ͷެ։伴ͷઃఆ wެ։伴ͱൿີ伴ͷରΛ࡞ͯ͠ɺެ։伴ΛΫϦοϓϘʔυʹίϐʔ͠ ·͢ > install -m 0700 -d ~/.ssh
# σΟϨΫτϦͷ࡞ > ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa # ެ։伴ͱൿີ伴Λ࡞ > cat ~/.ssh/id_rsa.pub | pbcopy # ެ։伴ΛΫϦοϓϘʔυʹίϐʔ ɹɹɹlDBUίϚϯυlQCDPQZz
σϓϩΠલͷલ४උ ϚωʔδυΫϥυʹެ։伴Λొ wϚωʔδυΫϥυӈ্ͷϝχϡʔ͔Β44)ެ։伴ͷొΛΫϦοΫ
σϓϩΠલͷલ४උ ϚωʔδυΫϥυʹެ։伴Λొ w44)ެ։伴Λϖʔετͯ͠ొ͠·͢
σϓϩΠલͷલ४උ ϚωʔδυΫϥυʹެ։伴Λొ w͏Ұճ44)ίϚϯυΛ࣮ߦͯ͠Έ·͠ΐ͏
σϓϩΠલͷલ४උ TFDSFU@LFZ@CBTFͷઃఆ wϚωʔδυΫϥυຊ൪ڥ QSPEVDUJPO ͱͯ͠ಈ͖·͢ w3BJMTͰTFDSFU@LFZ@CBTFͷઃఆ͕ඞཁͰ͢ > EDITOR=‘atom —-wait’ bin/rails
credentials:edit ɹɹɹlSBJMTTFDSFU@LFZ@CBTFz
σϓϩΠલͷલ४උ NBTUFSLFZͷίϛοτ wϚωʔδυΫϥυຊ൪ڥ QSPEVDUJPO ͱͯ͠ಈ͖·͢ wຊདྷͰ͋ΕNBTUFSLFZຊ൪ڥʹ(JUͱผͰઃஔ͢Δͷ͕· ͍͠Ͱ͕͢ɺࠓճ؆୯ͷͨΊʹNBTUFSLFZίϛοτ͠·͢ > git add
-f config/master.key > git commit -m 'Add master.key THIS IS BAD WAY' ɹɹɹlSBJMTTFDSFU@LFZ@CBTFz
σϓϩΠલͷલ४උ ੩తϑΝΠϧ3BJMTͰ৴͢Δ wࠓճϚωʔδυΫϥυίϯςφͰಈ͘ͷͰ੩తϑΝΠϧ3BJMT Ͱ৴͢ΔΑ͏ʹઃఆ͠·͠ΐ͏ wҰൠతʹ੩తϑΝΠϧ3BJMTͰͳ͘8FCαʔόʹ৴Λͤ ΔͳͲͷઃఆΛ͢Δͱྑ͍Ͱ͢ w > atom config/environments/production.rb
ɹɹɹlSBJMT੩తϑΝΠϧz
σϓϩΠલͷલ४උ ੩తϑΝΠϧ3BJMTͰ৴͢Δ wΕͣʹίϛοτ > git add . > git commit
-m ‘Rails public server enabled’
ϚωʔδυΫϥυ༻ͷσϓϩΠ༻(JUͱ࿈ܞ͢Δ wϚωʔδυΫϥυͷ3BJMTίϯςφͱ/PEFίϯςφσϓϩΠ༻(JU ϦϙδτϦ͕͋Γ·͢ wͦͷσϓϩΠ༻ϦϙδτϦʹιʔείʔυΛHJUQVTI͢Δ͜ͱͰɺ ϚωʔδυΫϥυʹσϓϩΠ͕Ͱ͖·͢ ɹɹɹlHJUQVTIz
ϚωʔδυΫϥυ༻ͷσϓϩΠ༻(JUͱ࿈ܞ͢Δ wϚωʔδυΫϥυͷϓϩδΣΫτը໘͔ΒʮϦϙδτϦʯΛίϐʔ ͯ͠ɺλʔϛφϧͰ࣮ߦ ɹɹɹlHJUSFNPUFBEEz
ϚωʔδυΫϥυ༻ͷσϓϩΠ༻(JUͱ࿈ܞ͢Δ wIUUQT MPMJQPQJPJEFBTʹΞΫηεͯ͠Έ·͠ΐ͏ ɹɹɹlHJUQVTIz > git push lolipop master
͜͜·ͰͰ ϋϯζΦϯͷϝΠϯηογϣϯ ऴྃͰ͢
3VCZPO3BJMTΞϓϦΛमਖ਼͠ ͯɺϚωʔδυΫϥυʹөͯ͠ ΈΑ͏
ϚωʔδυΫϥυΛͬͯ։ൃΛ͠Α͏ w࣮͜͜·ͰͰɺʮ3BJMT(JSMTʯͱ͍͏ϓϩδΣΫτͷʮ3BJMT(JSMTΨ Πυʯͷʮ͡ΊͯΞϓϦνϡʔτϦΞϧʯͷʮ*EFBͷTDB⒎PME Λ͢Δʯ·ͰऴΘ͍ͬͯ·͢ wʮ͋ͳͨͷΞϓϦΛΠϯλʔωοτʹެ։͠Α͏ʯ͢ͰʹͰ͖ͯ ͍·͢Ͷ w࣍ʮσβΠϯ͢ΔʯͰ͢ɻੋඇਐΊ͍ͯͬͯΈ·͠ΐ͏ ɹɹɹl3BJMT(JSMTz
ΞϯέʔτΛੋඇ͓ئ͍͠·͢ʂʂ
ϥΠηϯε w͜ͷϋϯζΦϯͷࢿྉͷҰ෦3BJMT(JSMTΨΠυ ຊޠ൛ IUUQ SBJMTHJSMTKQ Λࢀߟʹ͍ͯ͠·͢ɻ·ͨɺ3BJMT(JSMTΨΠυʹͭͳ͕ ΔΑ͏ʹ࡞ΒΕ͍ͯ·͢ɻ 3BJMT(JSMTΨΠυϥΠηϯε 5IJTXPSLJTMJDFOTFEVOEFSB$SFBUJWF$PNNPOT"UUSJCVUJPO4IBSF"MJLF-JDFOTF
IUUQDSFBUJWFDPNNPOTPSHMJDFOTFTCZTB 3BJMT(JSMT IUUQ SBJMTHJSMTDPN u$SBGUFEXJUIFYDJUFNFOUGSPN)FMTJOLJ 'JOMBOEu'PMMPXVTPO5XJUUFS IUUQTUXJUUFSDPNSBJMTHJSMT BOE'BDFCPPL IUUQTXXXGBDFCPPLDPNSBJMTHJSMT
5JQT։ൃڥʹ.Z42-Λར༻ ͍ͨ͠
ιʔείʔυΛमਖ਼ͯ͠ίϛοτ͠Α͏ > brew cask install sequel-pro # MySQLཧπʔϧͷΠϯετʔϧ > brew
install mysql-client > brew services mysql start # MySQLͷىಈ > brew services list ɹɹɹl.Z42-zlσʔλϕʔεzl4FRVFM1SPz
.Z42-ʹଓ͢ΔϢʔβΛ࡞͢Δ > mysql -uroot mysql> CREATE USER myuser@localhost identified with
mysql_native_password by ‘mypass'; mysql> exit > ɹɹɹl.Z42-zlσʔλϕʔεzl4FRVFM1SPz w ࠷৽ͷ.Z42-ͰσϑΥϧτͷೝূํ͕ࣜDBDIJOH@TIB@QBTTXPSEͱͳ͓ͬͯΓ4FRVFM1SPͳͲ͕ ରԠ͍ͯ͠ͳ͍ͨΊɺ.Z42-ҎલͰར༻͞Ε͍ͯͨNZTRM@OBUJWF@QBTTXPSEΛར༻ͨ͠ϢʔβΛ࡞ ͍ͯ͠·͢
3VCZPO3BJMTΛ͏લͷલ४උ σʔλϕʔεͷ࡞ w4QPUMJHIUͰʮ4FRVFM1SPʯΛݕࡧͯ͠&OUFSىಈ
3VCZPO3BJMTΛ͏લͷલ४උ σʔλϕʔεͷ࡞ wࠨԼͷ ϘλϯΛԡͯ͠৽نଓઃఆΛ࡞
3VCZPO3BJMTΛ͏લͷલ४උ σʔλϕʔεͷ࡞ wଓใΛೖྗ ઌ΄Ͳ࡞ͨ͠Ϣʔβ໊ͱύεϫʔ υΛೖྗ NZVTFSNZQBTT
3VCZPO3BJMTΛ͏લͷલ४උ σʔλϕʔεͷ࡞ wଓใͰ͖ͨΒσʔλϕʔεΛͭՃʢ։ൃ༻ͱςετ༻ʣ ɹɹɹσʔλϕʔε࡞.Z42-
3VCZPO3BJMTΛ͏લͷલ४උ σʔλϕʔεͷ࡞ wIPTDPOͱ͍͏໊લͷ։ൃ༻σʔλϕʔεΛ࡞
3VCZPO3BJMTΛ͏લͷલ४උ σʔλϕʔεͷ࡞ wIPTDPO@UFTUͱ͍͏໊લͷςετ༻σʔλϕʔεΛ࡞ wࠓճ͍·ͤΜ
5JQT4FRVFM1SP͕ͲͪΒͷσʔλϕʔεΛݟ͍ͯΔ͔ wϝχϡʔͷ্ͷํʹද͕ࣔ͋Γ·͢
σʔλϕʔεͷଓઃఆΛ͠Α͏ default: &default adapter: mysql2ɹ pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5
} %> timeout: 5000 development: <<: *default ɹusername: root database: hoscon host: 127.0.0.1 test: <<: *default username: root database: hoscon_test host: 127.0.0.1 production: <<: *default database: [ϚωΫϥͷϓϩδΣΫτը໘Λ֬ೝ] username: [ϚωΫϥͷϓϩδΣΫτը໘Λ֬ೝ] production: <<: *default database: [ϚωΫϥͷϓϩδΣΫτը໘Λ֬ೝ] username: [ϚωΫϥͷϓϩδΣΫτը໘Λ֬ೝ] password: [ϝϞͨ͠σʔλϕʔεͷύεϫʔυ] host: [ϚωΫϥͷϓϩδΣΫτը໘Λ֬ೝ]