Перенос БД postgresql с Windows на FreeBSD

Казалось бы, всё просто: делаем дамп с windows сервер и заливаем его. Тем не менее, при заливке сразу возникла ошибка:

ERROR: invalid locale name: "Russian_Russia.1251"

Вызванная тем, что в FreeBSD (как и в Linux) такой локали нет. Имеющиеся локали можно посмотреть командой locale -a

Русские локали можно найти так: locale -a | grep ru

Соответсвенно, в дампе нужно заменить несуществующую "Russian_Russia.1251" на существующую локаль, например "ru_RU.CP1251"

Важно, чтобы новая локаль была согласована с указанной в дампе кодировкой БД. При несоответствии можно получить ошибку вроде такой:

ERROR: encoding "UTF8" does not match locale "ru_RU.CP1251"

Т.е .если для БД указана кодировка UTF-8, то и локаль должна быть "ru_RU.UTF-8"