Odoo использует для работы PostgreSQL. Если вы запускаете Odoo в контейнере, рано или поздно прийдется подключиться к базе данных напрямую. Как это сделать, показываю на примере:
services: db: image: postgres:11.6 environment: - POSTGRES_PASSWORD=odoo - POSTGRES_USER=odoo - POSTGRES_DB=postgres restart: always volumes: - ./postgresql:/var/lib/postgresql/data
Первое — смотрим как называется контейнер с PostgreSQL. В нашем примере он называется просто db. В папке, в которой находиться docker-compose.yml выполняем команду:
docker-compose exec db bash
docker-compose exec — это эквивалент docker exec. С помощью этой подкоманды можно запускать произвольные команды сервисах.
Справка: https://docs.docker.com/compose/reference/exec/
В нашем случае, мы вызываем командную строку, через которую будем выполнять различные команды внутри контейнера.
Выполняем следующую команду:
psql postgres odoo
Все, мы подключились в базу данных и теперь можем выполнять команды и запросы напрямую.
- psql — это терминальный клиент для работы с PostgreSQL.
- postgres — название базы данных. В нашем случае, это POSTGRES_DB из docker-compose.yml
- odoo — пользователь, от имени которого подключаемся. В нашем случае, это POSTGRES_USER из docker-compose.yml
В некоторых случаях система может запросить пароль (POSTGRES_PASSWORD). Это зависит от типа подключения, но в нашем случае он не требуется.
Первым делом, нужно посмотреть какие базы данных у нас существуют. Для этого выполняем команду \l или \list. В таблице увидим все базы, которые есть в контейнере.
Теперь переходим непосредственно в базу данных, которую использует Odoo. Для этого, выполняем команду:
\c odoo
В нашем случае odoo — то название базы данных. Именно оно отображается в /web/database/manager.
Несколько команд в PostgreSQL
- \? — справка
- \dt — список всех таблиц
- \conninfo — информация о текущем соединении
- \q — выход из psql