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
Claude Codeはレガシー移行でどこまで使えるのか?
Search
ak2ie
February 22, 2026
Technology
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Claude Codeはレガシー移行でどこまで使えるのか?
ak2ie
February 22, 2026
More Decks by ak2ie
See All by ak2ie
DDDのエッセンスを取り入れたAIでの開発
ak2ie
1
270
SVG完全に理解してグラフ書いてみた
ak2ie
0
69
Go言語CLIツールで生産効率UPした話
ak2ie
0
130
Goではじめるバックエンド開発
ak2ie
0
87
Notion APIと学ぶNext.js
ak2ie
0
600
NestJSのはじめ方
ak2ie
0
170
フロントエンドでDDDやってみた
ak2ie
0
90
初心者がシビックテックに参加してみた
ak2ie
0
130
Firebase についてとことん語りたい
ak2ie
0
130
Other Decks in Technology
See All in Technology
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
0
400
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
2
2.6k
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
120
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
240
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
250
20260903 Tokyo Jazug Night #62 | Azure エンジニアよ、 その環境は本当にセキュアか?
olivia_0707
1
620
bet_ai_day_2026_session02
agenticsec
1
1.3k
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
130
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
440
AIエージェントの開発・提供におけるセキュリティリスクの論点と対策
flatt_security
1
590
Tab5をRubyで動くパソコンにする
kishima
1
240
When Does a Local Qwen Start to Break
morshoto
0
180
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.5k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Prompt Engineering for Job Search
mfonobong
0
440
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
340
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
230
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
How STYLIGHT went responsive
nonsquared
100
6.3k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
560
Transcript
Claude Codeは レガシー移行でどこまで使えるのか? MySQL 4 → 8 実戦投入の記録
自己紹介 秋田 大介 株式会社メンバーズ Webエンジニア 2
今回のミッション MySQL 4 → 8 へDBのみ移行 MySQL 4.0 は 2003年リリース(約23年前)
Movable Type 3系 Perl製の古いプラグインあり ボランティア団体のホームページ 業務外の対応 単純移行 → 動かない 3
Claude Codeの使い方 DB移行不具合の深層調査 4
プラグインが動かない Movable TypeのRightFieldsプラグイン (記事に独自項目を追加できる。WordPressでいうカスタムフィールド) データ移行後、拡張項目が表示されなくなった SQLインポートは正常。データ or ロジックの問題? 5
原因がわからない RightFieldsのロジックが不明 Perlも書いたことない Movable Typeも詳しくない Claude Codeで検証 6
Claude Codeと回した検証ループ 1. 仮説を立てる — 「MySQL側の文字変換?」 「Perl側?」 「データ自体?」 2. 検証スクリプトを書かせる
— Perlで診断CGIを作成 3. 実行結果を渡して分析 — 結果をファイル出力して分析 4. 仮説を排除して次へ — 仮説を潰し、原因の層を掘り下げ 7
Step 1: 仮説を立てる MySQL 4 → 8 で日本語を含むカラムだけ壊れている Claude Codeの仮説:
「MySQL 8.0が文字コード変換しているのではないか」 BLOBデータがutf8mb4 として再解釈され、バイナリが壊れた? 状況を伝えるだけで、仮説を立ててくれる 8
Step 2: 検証スクリプトを書かせる 「この仮説を検証して」と指示 LENGTH() (バイト長)と CHAR_LENGTH() (文字長)を比較 文字変換が起きていれば値にズレが 出るはず
# MySQL側のLENGTH vs CHAR_LENGTH比較 my $sth = $dbh->prepare( "SELECT plugindata_id, LENGTH(plugindata_data) as byte_len, CHAR_LENGTH(plugindata_data) as char_len FROM mt_plugindata WHERE plugindata_plugin ='rightfields'" ); $sth->execute; while (my $r = $sth->fetchrow_hashref) { my $match = ($r->{byte_len} == $r->{char_len}) ? "SAME" : "DIFFERENT!"; } 9
Step 3: 実行結果を渡して分析 検証スクリプトの出力を @output.txt で渡す 結果:全レコードで SAME Claude Codeの分析:
「MySQL側では文字変換は起きてい ない」 === MySQL LENGTH() vs CHAR_LENGTH() === ID=1 byte=16623 char=16623 => SAME ID=2 byte=1966 char=1966 => SAME ID=3 byte=8939 char=8939 => SAME ID=4 byte=820 char=820 => SAME : (全17レコード SAME) 10
Step 4: 仮説を排除して次へ MySQL文字変換の仮説を排除 Claude Codeが次の仮説を提案: 「Perl側(DBD::mysql)がUTF-8変換しているのでは?」 → このループを繰り返して8つの仮説を潰し、根本原因に到達 11
根本原因 phpMyAdminがBLOBを文字列リテラルでエクスポート → バイナリの0x82 が UTF-8検証でU+FFFD(置換文字)に化けた 正しいパック長: 00 00 01
82 → 386 ダンプ内: 00 00 01 EF BF BD → 495 と誤読 DBeaverでHEXリテラル形式(0x534552... )でエクスポート → 文字変換の影響を受けず、正常にインポートできた 12
結果と学び 感覚では約 15時間 削減できた 特に助かったのは 仮説 → 検証 → 分析
→ 次のアクション提示のループを回してくれたこと 仮説を検証・排除し、原因を絞り込んでくれた 検証スクリプトもPerlで書いてくれた Claudeは魔法ではない。でも、 「詰まる時間」を劇的に減らしてくれる 13
まとめ レガシー移行は 知識量勝負 になりがち Claude Codeは 「仮説の質」と「検証の速度」 で戦わせてくれる コードを書くだけでなく、検証・分析・次のアクション提案まで任せられる 14