Slide 1

Slide 1 text

RailsͷpatchύʔδϣϯΛ ্͚͛ͨͩͳͷʹ🤕 Roppongi.rb #22 @hatsu_38 2024/09/12

Slide 2

Slide 2 text

RailsͷύονόʔδϣϯΛ͋͛ͨͱ͖ʹ ى͖ͨΤϥʔʹ͍ͭͯͷݴ͍༁ղઆͰ͢💬

Slide 3

Slide 3 text

ࣗݾ঺հ • Rubyྺ 5೥ = ΤϯδχΞྺ • SHE Inc. • React.js / TypeScript / GitHub Actions • Ruby͕Ұ൪޷͖

Slide 4

Slide 4 text

ٕज़ελοΫ • Backend: Ruby, Ruby on Rails, GraphQL, Sidekiq • Frontend: React.js, TypeScript, Next.js • CI: GitHub Actions • Infrastructure: Kubernetes

Slide 5

Slide 5 text

ฐࣾͰͷϦϦʔεϑϩʔ(ͬ͘͟Γ) 1. Pull RequestΛग़͢ `gh pr create -t “bundle update rails —patch” ` 2. Approve΋Β͏ `gh pr review 9999 —approve` 3. MasterʹϚʔδ `gh pr merge 9999 -m -d` 4. εςʔδϯά ϦϦʔε `gh pr create -t “release 2024-09-05” -H master -B release` 5. εςʔδϯά֬ೝ 6. ຊ൪ϦϦʔε `gh pr merge 10000 -m -d`

Slide 6

Slide 6 text

2024೥08݄09೔ʹ Rails 7.2.0͕ϦϦʔε͞Ε·ͨ͠🎉

Slide 7

Slide 7 text

2024೥08݄22೔ʹ Rails 7.2.1, 7.1.4ͷύονόʔδϣϯ ͕ϦϦʔε͞Ε·ͨ͠🎉

Slide 8

Slide 8 text

RailsͷύονόʔδϣϯΛߋ৽(2024.09.03) 📝 gem data_migrate 9.4.2(౰࣌࠷৽)Λར༻

Slide 9

Slide 9 text

εςʔδϯά֬ೝ (2024.09.05) ɾgemͷupdateҎ֎ʹ΋ϓϧϦΫΤετ͕͋Δ ɾDBͷmigration΋গ͋͠Δ ɾಈ࡞֬ೝ͸໰୊ͳ͠👌 📝 2024.09.04 gem data_migrate 11.0.0͕ϦϦʔε͞Ε͍ͯͨ

Slide 10

Slide 10 text

ຊ൪ϦϦʔε🚀 (2024.09.05)

Slide 11

Slide 11 text

ϦϦʔε׬ྃ🌈 (2024.09.05)

Slide 12

Slide 12 text

Τϥʔݕ஌💥 (2024.09.05)

Slide 13

Slide 13 text

͑ʁʁʁ💫

Slide 14

Slide 14 text

ௐࠪ🔍

Slide 15

Slide 15 text

migration͞Ε͍ͯͳ͍!?🤔

Slide 16

Slide 16 text

• ΄ͱΜͲͷςʔϒϧͰ·ͩNJHSBUJPOʹ͔͔࣌ؒΔͱ͔͸ͳ͍ • data_migrateͱ͍͏gemΛར༻͍ͯ͠Δ • data_migrateͷbundle exec rails db:migrate:with_dataίϚϯυΛར༻ • Rails7.1.4ʹόʔδϣϯΞοϓ࣌఺(2024.09.03)Ͱ͸࠷৽ͷ data_migrate 9.4.2Λར༻͍ͯͨ͠ • 2024.09.04ʹEBUB_migrate 11.0.0όʔδϣϯ͕ग़͍ͯͨ ฐࣾͷmigrationࣄ৘

Slide 17

Slide 17 text

• ΄ͱΜͲͷςʔϒϧͰ·ͩNJHSBUJPOʹ͔͔࣌ؒΔͱ͔͸ͳ͍ • data_migrateͱ͍͏gemΛར༻͍ͯ͠Δ • data_migrateͷbundle exec rails db:migrate:with_dataίϚϯυΛར༻ • Rails7.1.4ʹόʔδϣϯΞοϓ࣌఺(2024.09.03)Ͱ͸࠷৽ͷ data_migrate 9.4.2Λར༻͍ͯͨ͠ • 2024.09.04ʹEBUB_migrate 11.0.0όʔδϣϯ͕ग़͍ͯͨ ฐࣾͷmigrationࣄ৘ 3BJMTºEBUB@NJHSBUF PS 3BJMTºEBUB@NJHSBUF ͰNJHSBUJPO͕ಈ͔ͳ͍ͱൃ֮😵 ᠘͗͢Δ…

Slide 18

Slide 18 text

• ΄ͱΜͲͷςʔϒϧͰ·ͩNJHSBUJPOʹ͔͔࣌ؒΔͱ͔͸ͳ͍ • data_migrateͱ͍͏gemΛར༻͍ͯ͠Δ • data_migrateͷbundle exec rails db:migrate:with_dataίϚϯυΛར༻ • Rails7.1.4ʹόʔδϣϯΞοϓ࣌఺(2024.09.03)Ͱ͸࠷৽ͷ data_migrate 9.4.2Λར༻͍ͯͨ͠ • 2024.09.04ʹEBUB_migrate 11.0.0όʔδϣϯ͕ग़͍ͯͨ ฐࣾͷmigrationࣄ৘ 3BJMTºEBUB@NJHSBUF PS 3BJMTºEBUB@NJHSBUF ͰNJHSBUJPO͕ಈ͔ͳ͍ͱൃ֮😵 εςʔδϯάͰ͸ɺDBͷmigration͕׬ྃޙʹɺRails7.1.4ʹόʔδϣϯΞοϓ͞Εͨ →͏·͍λΠϛϯάͰɺ໰୊͸ൃ֮͠ͳ͔ͬͨ💡 ᠘͗͢Δ…

Slide 19

Slide 19 text

ৄ͘͠ݟͯΈΔ🔬

Slide 20

Slide 20 text

ϩʔΧϧͰ࠶ݱͯ͠ΈΔ (Rails 7.1.4 × data_migrate 9.4.2) bundle exec rails db:migrate:with_data bundle exec rails db:migrate →migrate͕ಈ͍ͯͳ͍ →migrate͕ಈ͍͍ͯΔ

Slide 21

Slide 21 text

Rails 7.1.4Ͱͷมߋ͕data_migrateʹӨڹ͍ͯͨ͠ 3BJMT ˠNJHSBUF͞Ε͍ͯͳ͍όʔδϣϯͷ৘ใ͕ฦΔ 3BJMT ˠNJHSBUF͞Ε͍ͯͳ͍όʔδϣϯͷ৘ใ͕ฦΒͳ͍

Slide 22

Slide 22 text

Rails 7.1.4Ͱͷมߋ͕data_migrateʹӨڹ͍ͯͨ͠ 3BJMT ˠNJHSBUF͞Ε͍ͯͳ͍όʔδϣϯͷ৘ใ͕ฦΔ 3BJMT ˠNJHSBUF͞Ε͍ͯͳ͍όʔδϣϯͷ৘ใ͕ฦΒͳ͍ NJHSBUF͞Ε͍ͯͳ͍όʔδϣϯͷ৘ใ͕ฦΒͳ͍ ˠ͢΂ͯNJHSBUJPOࡁΈʜͱͳ͍ͬͯͨ🫠

Slide 23

Slide 23 text

Rails 7.1.4ͰͷมߋՕॴ ActiveRecord::Tasks::DatabaseTasks.db_con fi gs_with_versions Rails 7.1.3 Rails 7.1.4 →Ҿ਺͸DBͷcon fi g৘ใ →Ҿ਺͸DBͷ؀ڥ໊

Slide 24

Slide 24 text

Rails 7.1.4ͰͷมߋՕॴ ActiveRecord::Tasks::DatabaseTasks.db_con fi gs_with_versions Rails 7.1.3 Rails 7.1.4 →Ҿ਺͸dbͷcon fi g৘ใ →Ҿ਺͸dbͷ؀ڥ໊ 3BJMTºEBUB@NJHSBUFͰ΋%#ͷDPO fi H৘ใΛ౉͍ͯͨ͠ ˠ֘౰ͷ؀ڥͷNJHSBUJPO৘ใ͕ͳ͍ ˠNJHSBUF͞Ε͍ͯͳ͍όʔδϣϯͷ৘ใ͕ฦΒͳ͍ ˠNJHSBUF͞Εͳ͍

Slide 25

Slide 25 text

Rails 7.1.4 × data_migrate 11.0.0 ͷར༻ͰͱΓ͋͑ͣղܾ👋 (Rails 7.1.3 × data_migrate 11.0.0͸ಈ͔ͳ͍)

Slide 26

Slide 26 text

Patchόʔδϣϯͷߋ৽Ͱ΋ ͘Ε͙Ε΋͝஫ҙ͍ͩ͘͞👾