Postgresql upgrade error with locale on rebuild


(Vincent) #1

Hi,

I’m currently trying to rebuild my container, which desperately fails:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "fr_FR.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

The first time, I got this message:

les valeurs de lc_collate de la base de données « postgres » ne correspondent pas : ancien « en_US.UTF-8 », nouveau « fr_FR.UTF-8 »

Échec, sortie

-------------------------------------------------------------------------------------

UPGRADE OF POSTGRES FAILED

You are going to need to export your data and import into a clean instance:

In containers/app.yml: Change "templates/postgres.template.yml" TO "templates/postgres.9.5.template.yml"

Run ./launcher rebuild app again

When your instance is running:

Run ./launcher enter app

Run apt-get remove postgresql-client-9.5

Run cd /shared/postgres_backup && sudo -u postgres pg_dump discourse > backup.db

Undo the base_image in your container config

Run: ./launcher stop app

Run: sudo mv /var/discourse/shared/standalone/postgres_data /var/discourse/shared/standalone/postgres_data_old

Run: ./launcher rebuild app

Run: ./launcher enter app

Run: cd /shared/postgres_backup

Run: sv stop unicorn

Run: sudo -iu postgres dropdb discourse

Run: sudo -iu postgres createdb discourse

Run: sudo -iu postgres psql discourse < backup.db

Run: exit

Run: ./launcher rebuild app

I’m trying to follow the instructions but it keeps failing, apparently due to the previous locale error.
I did locale-gen the correct locales.

Help anyone?

Thanks!


(Bhanu Sharma) #2

have you tried sudo dpkg-reconfigure locales


(Vincent) #3

Yes, and I set the default locale to en_US.UTF-8.

λ  vincent@zbeul /var/discourse/ master echo $LANG
en_US.UTF-8
λ  vincent@zbeul /var/discourse/ master sudo echo $LANG
en_US.UTF-8

And yet…


(Bhanu Sharma) #4

The problem with postgresql seems unrelated to locales to me. Can you please give it a shot once again?


(Vincent) #5

Here is the resulting log for a rebuild:

https://framabin.org/?69ea5c8aa5df084a#1TNRoOdR9TvquTgzcvg5n/iN3g1YcwI1oYpj2j4RC+k=

with the postgres.9.5 template in app.yml.


(Bhanu Sharma) #6

I don’t understand why is it falling back to C. are you sure dpkg reconfigure shown you the correct locales? (space is select, tab is toggle and enter is OK)
Word of caution, It may totally not be related to locales, I’d wait for someone from team to comment.


(Vincent) #7

Yes, I’m absolutely sure. Thanks for your replies.

The real error seems to lie along these lines:

Finding the real data directory for the source cluster
could not get data directory using "/usr/lib/postgresql//bin/postgres" -D "/shared/postgres_data" -C data_directory: No such file or directory
Failure, exiting

(Vincent) #8

OK – back online.

I managed to go through the postgresql update process. The locale had to be changed container-side.