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
SVG完全に理解してグラフ書いてみた
ak2ie
0
60
Go言語CLIツールで生産効率UPした話
ak2ie
0
120
Goではじめるバックエンド開発
ak2ie
0
83
Notion APIと学ぶNext.js
ak2ie
0
590
NestJSのはじめ方
ak2ie
0
160
フロントエンドでDDDやってみた
ak2ie
0
86
初心者がシビックテックに参加してみた
ak2ie
0
130
Firebase についてとことん語りたい
ak2ie
0
130
D3.jsでグラフを描いてみた
ak2ie
0
120
Other Decks in Technology
See All in Technology
やさしいA2A入門
minorun365
PRO
10
1.5k
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
8
4.5k
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
580
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
30
23k
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
290
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
190
AIっぽい文章を採点して人間らしく直すアプリを作ってみた
yama3133
2
110
フロンティアAIのゲート化と地政学リスク
nagatsu
0
110
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
53
59k
非エンジニアがClaudeと挑んだ「1ヶ月間プロダクト30本ノック」
askokc
0
190
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
18
6.1k
On-behalf-of Token exchange with AgentCore Identity
hironobuiga
2
120
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
800
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
250
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
GitHub's CSS Performance
jonrohan
1033
470k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
360
First, design no harm
axbom
PRO
2
1.2k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
From π to Pie charts
rasagy
0
200
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Designing for Timeless Needs
cassininazir
1
250
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