barcus / bareos

Docker image for Bareos
https://hub.docker.com/r/barcus
MIT License
116 stars 55 forks source link

New Installation: false DB Encoding #113

Closed johann8 closed 3 years ago

johann8 commented 3 years ago

Hello,

I get a warning in bconsole on a new installation: Warning: Encoding error for database "bareos". Wanted SQL_ASCII, got UTF8 I think the encoding of DB ist false. Steps to replicate:

psql -U bareos
\l
   Name    | Owner  | Encoding |  Collate   |   Ctype    | Access privileges
-----------+--------+----------+------------+------------+-------------------
 bareos    | bareos | UTF8     | en_US.utf8 | en_US.utf8 

On my old installation it shows:

   Name    |  Owner   | Encoding  |  Collate   |   Ctype    |   Access privileges
-----------+----------+-----------+------------+------------+-----------------------
 bareos    | postgres | SQL_ASCII | C          | C       

and i don't have any warnings.

OS: Debian 10.10 Docker version 20.10.7 Docker-compose version 1.29.2 Ubuntu 20 latest with Postgres

Can you take a look please. Best regards Johann

johann8 commented 3 years ago

Temporary solution - change encoding to SQL_ASCII dc = docker-compose

# stop containers
cd /opt/bareos/
dc stop bareos-dir
dc stop bareos-fd
dc stop bareos-sd
dc stop bareos-webui

dcexec bareos-db env
dcexec bareos-db bash

# install sudo
apt-get update
apt-get install sudo
sudo -u postgres bash

# create dump
pg_dump -U bareos bareos > /tmp/bareos_dump.sql

# create new Role
CREATE USER postgres WITH SUPERUSER PASSWORD 'strong-password';
ALTER USER postgres WITH CREATEDB CREATEROLE CREATEUSER REPLICATION;

# Delete DB bareos
dropdb -U postgres bareos
psql -U postgres

UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';
DROP DATABASE template1;
CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'SQL_ASCII';
UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';
\c template1;
VACUUM FREEZE;
\q

# create DB bareos with Encoding SQL_ASCII
createdb -U postgres -E SQL_ASCII bareos
psql -U postgres bareos < /tmp/bareos_dump.sql
psql -U postgres
\l
\q

Best regards Johann

barcus commented 3 years ago

Thank you very much for your feeback As you said it seems to be related to default database template in PG which is loaded with UTF-8 encoding. I'm gonna fix it inside PG docker image directly.

barcus commented 3 years ago

i don't find more simple, using this environment variable in docker-compose file

` environment: