PythonとDjangoと、時々、バグ


いくつかのLOGOSWARE製品にはDjangoフレームワークが用いられています。

たいていの必要なことを実現するpackageを見つけることができるほど豊富なライブラリ(?)がそろっています。
packageの使い方さえ覚えれば、ほとんど業務ロジックだけ書いていれば事足りるのは魅力です。

今日は便利機能の一例としてcommandsとそこで起こった事件についてご紹介

commandsはDjangoではアプリケーションで実装したクラスや関数をコマンドラインから実行できる仕組みです。
C#やCなどの実行ファイルから、httpを経由せずに直接DjangoのAPIを叩くことができるなど夢が広がる!

これを使った製品のデータベースの更新commandsを実装中に事件が

T林「インストーラでバージョンアップしたら、データベースが更新されてないんだけど」
C野「えっ!開発環境で散々テストしたし!」

試行錯誤の結果、インストーラにしたものだけ、自作したcommandsを実行しようとすると「commands not found」とエラー終了してしまうことが判明。
インストーラにしたものでも、Djangoで提供されているcommandsは問題なく実行可能。
開発環境とインストーラの内容での違いはソースファイル(.py)の有無、commandsを記述したソースファイルが所定の場所にあれば問題なく動く。
どうやらDjangoのバグだったようです。

インストーラにもcommandsソースファイルを残すように修正して完了!

The following two tabs change content below.

Comments are closed.