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
もし odoo
や postgres
関連の名前が残っていたら、手動で削除:
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.conf
に admin_passwd = ****
を設定していても、Odoo UI の DB管理画面では
**初期化前は別の master password(ランダム生成)**が表示されることがあります。
以下のどちらかを守ればOKです:
.conf
に定義したadmin_passwd
を使う → Docker 起動時に環境変数で読み込ませる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
コメントを残す