mcpField
O
odev

odev

github.com/odoo-ps開発544 回インストール7 週間前に更新
リポジトリ

odev について

Odoo のアップグレード作業で `odev`(Odoo Development CLI)を使う開発者向けの手順スキルです。データベース操作、テスト、デプロイ、モジュールのバージョン更新に関するコマンド規則を説明します。

主な機能

  1. 01`odev` コマンドの使用規則
  2. 02データベース作成と削除の手順
  3. 03対象を絞ったテスト実行
  4. 04実行とデプロイの検証
  5. 05モジュールマニフェストのバージョン管理

活用シーン

  1. 01アップグレード用 Odoo データベースの作成
  2. 02モジュールの関連テスト実行
  3. 03`odev run` または `odev deploy` による変更の検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/odoo-ps/ps-ai-skills --skill odev

インストール後、Claude Code で/odevを入力して読み込まれたか確認します。

詳細

ODEV コマンドスキル

このスキルでは、アップグレードタスクで odev(Odoo Development CLI)を使用する方法を説明します。

🛑 必須ルール(ODEV CLI の使用)

  1. バージョン指定:データベースを作成するとき(odev create)は、-V <version> フラグを使用して Odoo のバージョンを明示的に指定する必要があります。odev run、odev shell、odev test などのほかのコマンドでは、データベースがすでに存在する場合、odev がデータベースからバージョンを自動的に判別するため、-V フラグは任意です。ただし、データベースとは異なる特定のバージョンを対象とする場合や、データベースが存在しない場合は、-V の指定が必要です。

    • 例:odev run -V 19.0 ...
  2. 引数の順序:odev 固有のフラグ(-V、-f、-c、-w、--venv など)は、データベース名より前に指定する必要があります。

  3. データベースの作成/上書き:すでに存在する可能性があるデータベースを作成する場合は、確認プロンプトを回避するため、必ず -f(force)フラグを使用する必要があります。既存のデータベースを odev create で「上書き」するには、-f が必須です。

    • 例:odev create -f -V 18.0 new_db -i base
  4. ログレベル:ログを簡潔に保ち、トークンを節約するため、--log-level=warn を使用してください。このフラグは odev によって処理され、odev 自身と Odoo サーバーの両方のログレベルが設定されます。

  5. グロブの引用符:--glob を使用する場合は、odev に渡す前にシェルがパターンを展開しないよう、必ずパターンを二重引用符で囲んでください。

    • 誤り:odev upgrade-code --glob my_module/**/*
    • 必須:検証のために odev run または odev deploy を使用する場合は、必ず --stop-after-init を指定してください。指定しないと、シェルがハングします。
  6. アドオンのパス:odev は、指定されたバージョン(-V)に基づいて Odoo と Enterprise のアドオンパスを自動的に管理します。標準の Odoo パス(odoo/addons や enterprise など)を手動で指定してはいけません。これらは odev が内部で処理します。また、odev は対象データベースのリポジトリパスも自動的に追加します。カスタムフォルダーで作業している場合、そのフォルダーがアドオンパスとして検出されれば、odev が追加することもあります。バージョンの不一致を避けるため、パスの管理は odev に任せてください。

主なコマンド

  • odev run <database> [options]:

    • Odoo サーバーを起動します。
    • 手動での確認やテストに役立ちます。
    • データベースの存在:データベースが存在している必要があります。存在しない場合はエラーが発生します。
    • バージョン指定:-V <version> を省略すると、odev はデータベースからバージョンを取得します。
    • 必須:スクリプトで実行する場合や自動検証を行う場合は、必ず --stop-after-init を指定してください。
    • ベストプラクティス:競合を避けるため、必ず --http-port <free_port> を指定してください。
    • 例:odev run db -i mod --http-port 8069 --log-level=warn --stop-after-init
  • odev create -V <version> <database> [options]:

    • 新しいデータベースを作成し、モジュールをインストールします。
    • 必須:新しいデータベースを作成するときは、必ず -V <version> で Odoo のバージョンを指定してください。
    • 必須:データベースがすでに存在する場合は、-f を使用して強制的に作成してください。
    • テンプレートデータベースを作成するには -T を使用します(例:odev create -f -T -V 17.0 my_template -i sale)。
    • テンプレートから複製するには -t <template> を使用します(例:odev create -f -t my_template -V 17.0 new_db)。
  • odev test <database> -i <modules> [options]:

    • 対象を絞った検証:個別の修正の検証にはこのコマンドの使用が推奨されますが、実行時間を短く保つため、必ず特定のタグを指定してください。
    • 必須:関連する失敗テストのみを実行するため、必ず -t <tag> または --tags <tag> を指定してください。
    • 例:odev test my_db -i my_module -t .test_some_method
    • テスト一式の実行は避ける:特定のタグを指定せずに odev test を実行しないでください。モジュールのテスト一式は実行に時間がかかり、消費するトークンも多くなります。ホストのフレームワークが、セッション終了後にテスト一式を自動実行します。
  • odev venv <database> -c "<command>":

    • データベースに関連付けられた仮想環境内でコマンドを実行します。
    • パッケージのインストール:Python パッケージが不足している場合は、次のコマンドを使用してください。 odev venv <database> -c "pip install <package>"
  • odev shell <database> [options]:

    • 指定したデータベース用の対話型 Odoo シェルを起動します。
    • --script "<python_code>" を使用すると、コードを実行してすぐに終了します。
    • 例:odev shell my_db --script "print(self.env.user.name)"
  • odev deploy <module_path> [options]:

    • 実行中の Odoo インスタンスにモジュールをホットデプロイします。
    • 例:odev deploy /custom/my_module
  • odev kill -H <database> [options]:

    • データベースに関連付けられた実行中の Odoo プロセスを終了します。
    • プロセスが応答しない場合は、-H(強制)を使用して SIGKILL を送信します。
    • 例:odev kill my_db
  • odev delete -f <database> [options]:

    • 既存のデータベースと、それに関連するリソース(フィルストア、設定)を削除します。
    • 必須:確認プロンプトを省略するには、-f(強制)を使用してください。
    • 前提条件:データベースが現在実行中の場合は、先に odev kill <database> を使用して終了してください。
    • 例:odev delete -f my_db
  • odev upgrade-code <database> --from <ver> --to <ver>:

    • 一般的な名前変更(例:Odoo 18.0 以降での <tree> から <list> への変更)に合わせて、ソースコードを自動的に移行します。
    • 必須:ディレクトリのパスではなく、対象のデータベース名を指定してください。

ベストプラクティス

  • 反復作業を高速化する:テンプレートデータベース(-T と -t)を使用して、標準の Odoo モジュールを繰り返し再インストールする手間を省きます。
  • バージョンを厳密に指定する:データベースの作成時には -V フラグを渡してください。それ以外のコマンドでは、データベースのデフォルトとは異なる特定のバージョンを対象にする必要がある場合のみ使用してください。
  • プロンプトを省略する:スクリプトや自動タスクでは、対話型プロンプトによって実行が妨げられないよう、必ず -f を使用してください。

📦 モジュールマニフェストの基準

  1. バージョン管理:モジュールを新しい Odoo バージョンにアップグレードする際は、__manifest__.py のバージョンを必ず ODOO_VERSION.1.0.0(例:19.0.1.0.0)にリセットしてください。
    • 絶対に、アップグレード元の Odoo バージョンのマイナーバージョンやパッチ番号を引き継がないでください(例:16.3.1.2.3 を 19.3.1.2.3 にしないでください)。
    • 最初のアップグレードコミットでは、形式を必ず <odoo_major>.0.1.0.0 にしてください。

コメント