v0.3.0 で実施したテーブル構造の正規化により、以前のバージョン(v0.2.5)とのデータベース互換性が失われていた。既存ユーザーがデータを失うことなくスムーズに移行できるよう、自動マイグレーション機能を実装するため。
items テーブルからドキュメントメタデータを抽出し、新しい 1:N 構造(documents テーブルとの紐付け)に再編する。その際、ベクトルデータとの整合性を保つため id を維持する。PRAGMA table_info(items) を使用して、古い path カラムの有無でマイグレーションの要否を判断。documents テーブルを新規作成し、ユニークなパスを移行。items テーブルを新スキーマで再作成(document_id を付与し、chunk_index を自動生成)。AIエージェントは以下の手順で作業を実施した。
src/backend/src/db.rs に migrate_025_to_030 関数を実装。init_schema の冒頭で上記関数を呼び出すように修正。cargo check によりコンパイルの整合性を確認。今回のマイグレーション対応により、ユーザーは特別な操作をすることなく TelosDB v0.3.0 へアップデート可能になりました。内部的にはテーブルのリネーム、データの再挿入、外部キー制約の一時解除など複雑な処理を行っていますが、これらをカプセル化することで、プロダクトとしての堅牢性とユーザー体験の両立を実現しました。 以前のベクトル ID をそのまま引き継ぐ設計としたため、再インデックスの手間も最小限に抑えられています。