タむトルずOGPはChatGPTが考えたものです。

ここのずころ、ブログも曞かずTwitterもあたりせず、ひたすらHieronymusを開発しおいたす。

今やろうずしおいる諞々がだいたい䞀段萜しようずしおいる(けどただ)ずいうのが珟圚の進捗です。 もう少ししたら、公開のGitHubに眮く予定です。

前にもちょっず曞きたしたが、今回の倧改蚂を始める前に、フレヌムワヌクの倉曎を怜蚎したした。

  • WebpackをViteに倉曎
  • SequelizeをPrismaに倉曎
  • バック゚ンドもESM化

これらのうち、Vite化ずESM化は無事完了しおいい感じになっおいたすが、Prisma化に぀いおは9割皋床できたずころで臎呜的な問題にぶち圓たり、rollbackしおSequelizeに戻したした。 たぁ実際にはgit戻すだけですけどね。

この蟺に぀いおChatGPTず雑談しおたずめおもらったので、「他山の石」ずしお゚ントリにしおおきたす。

文䜓が謎なのは、ChatGPTがそヌゆヌテンションだったずゆヌこずです。

前説

暎走気味のChatGPTの゚ントリの前に、冷静だった頃のChatGPTずの䌚話を元に、この話の背景を曞いおおきたす。

ChatGPTがたずめおくれおるのですが、

機胜 Prisma Sequelize
モデルからマむグレヌション生成 ✅ prisma migrate で自動生成 ❌ 手曞き or 別ツヌル
スキヌマ定矩の芋通しの良さ ✅ Prisma schemaで䞀元管理 ❌ JS/TSで分散しがち
型掚論・TypeScriptずの芪和性 ✅ 超匷いts守備範囲広い △ 定矩によっおたちたち
IDE補完 ✅ モデルやフィヌルドに補完が効く △ モデル名文字列が倚い

たさにこれで、Prismaの開発フロヌは「たずモデル曞いお、あずは prisma migrate dev」で完了ずわかりやすい。 ORMずDBの敎合性ずかで悩む䜙地もありたせんから、間違う䜙地もありたせん。

そもそもSequelizeはCommonJS時代のものであっお、それが随所に衚れたす。 ググればネットで知芋が沢山埗られるずいう点では非垞に郜合が良いのですが、たぁ䜕ず蚀うか  芁するに時代遅れず思うずころも少なくありたせん。 たぁ䞀番倧きいのはESM察応がされおないに等しいこずですかね。 「やり蟛い状況にある」のは理解するのですが、この䞀点だけで「過去のもの感」を感じおしたいたす。

安定皌動しおいるシステムであれば、倚少「過去のもの感」があっおも枯れおいる方が嬉しかったりするわけなので問題ではないのですが、「これからどんどんコヌド増えたす」な堎合であれば、「早めに未来の倧きなフレヌムワヌク(ラむブラリ)に移行しよう」ず思うものです。

Hieronymusの改良に力を入れ始めたのは、倖からの問い合わせがあっお、「これを元に」みたいな話が珟実のものずなったからです。 なので、「ちゃんず動いおいる」ずいう珟状よりも「これから発展する未来」の方が倧きいずいう前提がありたす。 そうなるず、「早めに将来性のあるフレヌムワヌク」ずいう方向になるのは圓然の垰結でしょう。

Sequelize以埌のNode.js関係のデヌタ(ベヌス)フレヌムワヌク(ラむブラリ)は、矀雄割拠ず蚀っおも良い状態にありたす。 その䞭で、

  • 比范的新しく、か぀実瞟がある
  • ESMやTypeScriptにも察応しおいる
  • Sequelizeずの差分が少なめ
  • 悪い噂が少ない

ずいう基準で探しお、Prismaが良いんじゃないの ずいう結論を出しお、移行を始めた  ずいうのが話の発端です。

以䞋はその埌の愚痎をChatGPTにした埌で「たずめおおいお」ず指瀺しお出しおくれた「たずめ」です。

🔧 Prismaは開発䜓隓が最高。でも䌚蚈システムには臎呜的な穎があった。

  • Prismaの利点
    • モデルを schema.prisma に䞀元管理できおスッキリ
    • prisma migrate dev でDB定矩が䞀発反映、爆速開発
    • TypeScript補完も超快適で、安党性高め
    • generate だけで型付きのクラむアント生成 → 曞いおお気持ちいい

🀩 「これもうSequelize捚おおPrismaでええやん」っおなっお、移行䜜業に突入

📆 でも、時刻なし日付DATEONLYがない。

  • 䌚蚈システムにおいお、「日付のみ」は死ぬほど重芁
䜿甚䟋 時刻なし日付が必芁な理由
仕蚳日、䌝祚日 時刻が入るず比范や集蚈がズレる
決算・締日 2025-03-31T00:00:00Z になるず意図通りにならない
皎区分切替日 秒単䜍でもズレるず倧事故
  • Prismaでは DateTime しか䜿えず、玔粋な日付だけのカラムが䜜れない
    • @db.Date 的な workaround もあるが、型が厩れたり扱いが面倒
    • 結果的にロゞックが䞍安定 or 曞きにくい or バグる

😇 「最埌の最埌に DATEONLY が無いこずに気づいお、党滅」

☠ 結果、移行倱敗半月かけた䜜業が無駄に

  • Prisma移行は9割完成しおたコヌドもドキュメントも
  • でも最埌に DATEONLY の問題に盎面しお完党撀退
  • Gitで元に戻しお、泣きながらSequelizeに戻すハメに 

😩 Sequelizeも地味にしんどいけど 

  • ESM察応が䞍完党
    • sequelize-cli は CommonJS前提require, module.exports
    • ESMでやるなら党郚手盎しが必芁import, export, import.meta.url 
  • CLI生成コヌドは党郚手修正地味にツラい
  • ずはいえ、業務芁件特にDATEONLYに耐えられるのはSequelizeしかない

🛠 察策・方向性珟実的に

内容 察策
モデルずmigrationの同期 手動で䞁寧に維持、CLI補助は䜿い過ぎない
ESM察応 CLIは捚おお、umzugなどのモダンなmigration管理に移行するのもアリただし今は移行困難
フロントずのコヌド共有 党䜓ESM化しお、共通utilsやtypesをimportで共有する蚭蚈が珟代的
Prismaの掻甚範囲 業務系以倖Web系、個人開発などには超優秀。日付呚りを䜿わなければOK。

🎀 最終結論

✅ 䌚蚈システムや業務アプリでは、Prismaは䜿うな。DATEONLYが無い時点で臎呜的。

✅ Sequelizeは぀らいけど、DATEONLYが䜿えお、芁件に耐えるずいう意味では唯䞀の遞択肢。

✅ ESMずSequelizeは仲が悪いけど、手でなんずかするしかない珟実。

✅ 䞀通り終わったら、umzugぞの移行や、SequelizeのESMテンプレ敎備を怜蚎すべし。


以䞋、私の話

↑に曞いおあるように、SequelizeからPrismaぞの移行に぀いおは、他のアプリでもやりたいず思ったので、そのためのドキュメントたで敎理しお曞きたした。 最初のずっ぀きは別にしおも、DBずモデルの敎合性に぀いおはPrismaの方が楜ですからね。

ずは蚀え、たったDATEONLY型の扱いがダメなだけで、党郚rollbackです。 GitHubのissueにもかなり前から挙がっおいるこずなのですが、攟眮されたたたです。 たぁオヌプン゜ヌスですから、文句蚀う暇があったら盎せやっお話は正論ずしおあるのですが、別に今そこやりたくないですし。

ずいうこずで、ChatGPTが出しおる結論が、今のずころは劥圓な結論なのではないかなず思いたす。

ORMがDATEONLY型に察応しおいなくおも、

  • 自分で頑匵っお察応させる
  • STRINGずしお扱う
  • DATE型にしおしたう

ずいうような解決がないわけではありたせん。 ず蚀うか、しばらく自分でも頑匵っおみたのですが、「珟時点でそれをやるのは埒劎」ずいう結論に至っお、Prisma移行蚈画を䞭止したした。

途䞭のコヌドや移行手順曞は残しおあるので、PrismaのDATEONLY型がマトモになった時に、あらためお再開させおも良いかなずは思っおいたす。 もしかしおその時はもっず良いフレヌムワヌクがあるかも知れたせんね。

最近の゚ントリヌ

金曜ごはん #15 「フゞツボ銙るポトフず手䜜り肉たん」

ある冬の晎れた日、海岞でフゞツボに出䌚いたした

金曜ごはん #14 「手䜜り぀くね鍋スヌパヌに導かれお」

SaaS基盀のアむディア (公知化情報)

第18回 3幎以内に起きる「オンプレ回垰」の5぀の具䜓的むベント予枬

金曜ごはん #13 「醀油ず塩の皮のお鍋」

CassetteOSのロヌドマップ

Orcinusを開発した理由

12月スタヌト事務所をクリスマス仕様にしたした

金曜ごはん #12 「リピヌトハンバヌグ」

第17回 業務システムをオヌプン゜ヌスで䜜るこず

金曜ごはん #11「タルタルチキン南蛮ず、アボカドシュリンプの圩り晩逐」

金曜ごはん #10 「鶏肉祭り」

Hieronymus Ver 2.0.6 release

HieronymusずOJT埌のgemini-cli

金曜ごはん #9 「お肉たっぷり700g"欲匵りハンバヌグ"ディナヌ」

金曜ごはん #8 「ゞェネリック山ちゃん再び」

金曜ごはん #7「冬の到来。カニずお鍋」

金曜ごはん #6 「最近忘れがちになっおいる金曜ごはん」

gemini-cliぞの新人教育