はじめに
現役のトラックドライバーとして物流の現場を走りながら、Pythonを独学しているtosane932です。
前回、Dockerのマルチステージビルドを実際に試した記事を書きました。あの記事の最後で「次はpytestとCI/CDについて書く」と予告していたので、今回はその実践編……のはずだったのですが、その準備段階で思わぬ副産物にぶつかりました。Flask-Migrateを導入しようとしただけなのに、pipのインストールログから、開発環境のライブラリバージョンが意図せず書き換わっていたことが発覚したのです。そこから環境を完全に統一し、既存機能が壊れていないかをpytestで確認するまでの、泥臭いプロセスをそのまま書きます。
概要
Flask-Migrateの導入作業中、pipのインストールログをきっかけに、ローカル開発環境と設定ファイル(requirements.txt)における外部ライブラリgoogle-genaiのバージョン不一致が発覚しました。本稿は、その発見から環境の統一、そして自動テストによる挙動確認までの対応記録です。
1. 発生していた課題と背景
Flask-Migrateをインストールするためpip install -r requirements.txtを実行したところ、ログの中に以下の一文を見つけました。
Attempting uninstall: google-genai
Found existing installation: google-genai 2.10.0
Uninstalling google-genai-2.10.0:
確認してみると、ローカル環境では2.10.0を使って開発・動作確認を進めていたにもかかわらず、requirements.txtには古いバージョン(2.4.0)が記述されたままになっていました。Flask-Migrateのインストールに伴い、このrequirements.txtの記述通りにライブラリが上書きされ、気づかないうちにローカル環境のバージョンが意図せず引き下げられていたのです。
本番環境やCI環境でこの古いバージョンがそのまま使われた場合、メソッドの仕様変更や未実装の機能によってエラーを引き起こす可能性があるため、環境の完全な統一とテストコードによる保証が必要だと判断しました。
2. 対応手順と事実経過
① 依存ライブラリのバージョン統一
ローカル環境で実際に使っていた2.10.0を正として、まずはそちらへ戻す作業を行いました。
# 現在のバージョンを確認
pip show google-genai
# ローカルで動作確認済みだったバージョンに戻す
pip install google-genai==2.10.0
そのうえで、requirements.txt側の記述が実態(ローカルの2.10.0)と食い違っていたため、こちらを正しいバージョンに書き換えました。
google-genai==2.10.0
② アプリケーションの動作確認
バージョンを戻した後、Gemini APIを使用したAI生成ロジックが今まで通り正常に機能するかを手動にて検証しました。
- 日次入力ページおよびダッシュボードにおいて、最新のモデルである
gemini-2.5-flashを用いたAIアドバイスが欠損なく生成されることを確認しました。
③ 自動テスト(pytest)による検証
手動確認に加え、事前に定義していたプロンプト関連のテストコード(test_prompts.py)を実行し、バージョンを戻したことによるデグレード(機能退行)が発生していないかを、念のため確認しました。
pytest test_prompts.py -v
結果:
定義された3つのテストケースすべてが正常にパス(passed)し、ロジックの健全性が客観的に証明されました。
3. まとめ
本作業により、以下の状態を確立しました。
- pipのインストールログを見落とさず、環境のズレを早期に発見できたこと。
- 開発環境と設定ファイル(
requirements.txt)におけるライブラリバージョンの完全な一致。 - 自動テストによる、バージョン変更後のロジック正常性の担保。
これにより、次のステップである「Flask-Migrate を用いたデータベースの履歴管理(マイグレーション環境の構築)」へ安全に移行するための強固な足場が完了しました。
sales_data_app 整備記録シリーズ
「本番出走前・車検三部作」
🚚「出走後メンテナンスシリーズ」
🍞
