Odoo 初期化手順

WorkerCron (39) polling for jobs

ChatGPT:

OdooをDockerで一からやり直したい場合、以下の順番で環境を「完全にクリーンな状態」に戻すのが確実です。これにより「Database already exists」エラーも解消されます。


✅ ステップ1:コンテナとボリュームの完全削除

bashコピーする編集するdocker-compose down -v
  • -v をつけることで、データベースのボリュームも削除されます。
  • このコマンドで Odoo と PostgreSQL の両方のコンテナ、およびボリュームが削除されます。

✅ ステップ2:キャッシュや残留データの確認(オプション)

念のため、以下のコマンドで残留データがないか確認できます。

bashコピーする編集するdocker volume ls

もし odoopostgres 関連の名前が残っていたら、手動で削除:

bashコピーする編集するdocker volume rm <volume_name>

✅ ステップ3:再度ビルドして起動

bashコピーする編集するdocker-compose up --build

このとき、Odoo が初期化され、新しいデータベースの作成画面が出るはずです。


✅ よくある注意点

Database already exists が出る原因

これは、db コンテナの中に odoo が一度でも作成した DB が永続化(volume)されていたためです。
たとえ Odoo のコードを全部削除しても、DB の実体はボリューム内にあります。

admin_passwd について

odoo.confadmin_passwd = **** を設定していても、Odoo UI の DB管理画面では
**初期化前は別の master password(ランダム生成)**が表示されることがあります。

以下のどちらかを守ればOKです:

  1. .conf に定義した admin_passwd を使う → Docker 起動時に環境変数で読み込ませる
  2. admin_passwd が反映されていないなら、UI に表示される master password を使う

✅ 念のための構成例(最低限)

docker-compose.yml(例)

yamlコピーする編集するversion: '3.1'
services:
  db:
    image: postgres:15
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=odoo
      - POSTGRES_PASSWORD=odoo
    volumes:
      - odoo-db-data:/var/lib/postgresql/data

  odoo:
    image: odoo:18
    depends_on:
      - db
    ports:
      - "8069:8069"
    environment:
      - HOST=db
      - USER=odoo
      - PASSWORD=odoo
    volumes:
      - ./addons:/mnt/extra-addons
      - ./odoo.conf:/etc/odoo/odoo.conf

volumes:
  odoo-db-data:

odoo.conf(例)

iniコピーする編集する[options]
addons_path = /mnt/extra-addons
admin_passwd = your_master_password
db_host = db
db_port = 5432
db_user = odoo
db_password = odoo

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です