100万語の辞書サイトを目指して。MarkdownからAstro DBへの移行を決意した理由

皆様、こんばんは。

現在運営している辞書サイトですが、大きな転換期を迎えようとしています。 現在、約3,000語の用語をMarkdown形式で管理し、AstroのContent Collectionsを使ってサイトを構成しています。ファイル構成も分類ごとにフォルダ分けを行い、Accessでの管理も視野に入れて非常に整然と運用してきました。

しかし、私の最終的な目標は「100万語」を超える巨大な辞書サイトを構築することです。

今のMarkdownベースの運用でも、3,000語程度であれば非常に快適に動作しています。しかし、これが1万語、10万語、そして100万語となった時、ファイルシステムとしての限界や、ビルド時間の増大、そして何より「データの検索・修正」という管理面での課題が浮き彫りになることが予想されます。

そこで本日、これまでの「ファイルベース」の運用から、**「Astro DB(SQLite / Drizzle ORM)」**によるデータベース運用へ移行することを決意しました。

なぜ Astro DB なのか?

検討の過程では、Decap CMSによるGUI管理や、XserverのMySQL、さらにはSupabaseなどのクラウドDBも候補に上がりました。その中でAstro DBを選んだ決め手は、以下の3点です。

  1. Astroとの圧倒的な親和性: 公式ツールであるため、現在のTypeScript環境をそのまま活かせます。
  2. 100万語を支えるスケーラビリティ: データベース化することで、100万件の中からでもミリ秒単位での検索が可能になります。
  3. 柔軟なインポート機能: 今ある3,000個のMarkdown資産を、スクリプト一つで一括投入できることがわかりました。

これからのステップ

明日以降、いよいよ実作業に入ります。まずは以下の手順で、安全に、かつ着実に進めていく予定です。

  1. 環境構築: npx astro add db によるAstro DBのインストール。
  2. スキーマ設計: 現在のMarkdownのフロントマターに合わせ、DBのテーブル構造を定義。
  3. 移行テスト: 数件のMarkdownファイルをDBへ流し込み、表示確認。
  4. 自動生成の連携: 現在行っている用語の自動生成プロセスを、DBへ直接書き込む形へアップデート。

100万語という数字は果てしないようにも思えますが、適切な技術基盤(器)さえ整えば、あとは一歩ずつ中身を積み上げていくだけです。

Accessでのデータ管理スキルも、今後はDBの設計やデータのクレンジングにおいて大きな武器になると確信しています。

明日からの作業が今から楽しみです。また進捗がありましたら報告いたします。

コメント

タイトルとURLをコピーしました