db (postgres)
Sistema gestor de base de datos.
La imagen está configurada para funcionar con el servicio web y keycloak, por lo tanto al arrancar cualquiera de estos, este arrancará automáticamente.
Creación de bases de datos
Odoo
La base de datos de Odoo es creada por el servicio web la primera vez que se ejecuta, tras solicitar al usuario el nombre de las credenciales
Resto de bbdd
Para crear nuevas bases de datos es necesario incluirlas en el fichero .databases que hay en el carpeta /postgres.
-
Si están los contendores arrancados, apagarlos
$ docker compose down -
Modificar el fichero .databases. Por ejemplo para añadir una base de datos para la gestión de Keycloak
# lista de bases de datos:usuario:contraseña a crear en el contenedor KEYCLOAK:keycloak:secret123donde:
- KEYCLOAK: es el nombre de la base de datos
- keycloak: el nombre del usuario con acceso total
- secret213: contraseña del usuario (no se pueden utilizar los dos puntos ( : ) como parte de la contraseña)
- Las líneas que empiezan por # se consideran comentarios
Importante: el nombre de la base de datos puede ser cualquiera, pero si es una base de datos creada para otro servicio de odoodock es necesario utilizar el mismo nombre que el utilizado en el fichero .env de configuración. En este caso el definido en la variable
POSTGRES_KEYCLOAK_DB=KEYCLOAKImportante: el usuario que creará la base de datos es el definido en la variable
POSTGRES_USERque suele estar asignada a odoodock. El usuario creado desde el fichero .databases tendrá permisos totales pero solo sobre la base de datos asociada. -
Crear las bases de datos
En el caso de que sea el primer arranque (la imagen no está contruida) del servicio las bases de datos se crearan al crear la imagen
En el caso que se ya se haya arrancado previamente hay dos opciones:
-
a) Reconstruir la imagen. Desde la carpeta odoodock
$ docker compose build db -
b) Actualizar el fichero databases de dentro del contenedor
$ docker cp .databases db:/tmp/.databasesEjecutar el fichero de creación de bases de datos. Desde la carpeta odoodock
$ docker compose exec db bash /docker-entrypoint-initdb.d/init-databases.sh
-
-
Comprobar que la base de datos se ha creado correctamente
$ docker exec -it odoodock-db-1 psql -U odoodock --dbname postgres > postgres=# \l
MUY IMPORTANTE. Si se utiliza este servicio para dar soporte a otros servicios, por ejemplo keycloak, si para crear la bd no se ha reconstruido la imagen es posible que el servicio no arranque correctamente ya que la base de datos no estaría creada. La solución más sencilla consiste en reiniciar los contenedores.