Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Claude Codeはレガシー移行でどこまで使えるのか?
Search
ak2ie
February 22, 2026
Technology
1.7k
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
310
SVG完全に理解してグラフ書いてみた
ak2ie
0
73
Go言語CLIツールで生産効率UPした話
ak2ie
0
130
Goではじめるバックエンド開発
ak2ie
0
92
Notion APIと学ぶNext.js
ak2ie
0
600
NestJSのはじめ方
ak2ie
0
170
フロントエンドでDDDやってみた
ak2ie
0
92
初心者がシビックテックに参加してみた
ak2ie
0
140
Firebase についてとことん語りたい
ak2ie
0
130
Other Decks in Technology
See All in Technology
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
1
700
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
610
SREでアラート疲れを 解決しよう!
kairim0
1
230
Jetson Orin Nanoとk3sとローカルLLMで音声文字起こしシステム作ってみた
y_sera15
0
120
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
630
会社説明資料
persolserverworks
0
9.7k
しろおびから始める!ログ活用の第一歩
shumei_ito
0
920
パッチ更新でterraform initが落ちた日
grimoh
1
120
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
130
Loop Engineering これくらいでいい
mikanichinose
0
230
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
880
Featured
See All Featured
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
590
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
730
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
530
Exploring anti-patterns in Rails
aemeredith
4
530
Side Projects
sachag
456
43k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
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