ВОПРОС · Q&A

Postgresql "Несовпадение версии"

3 ответов 5,3 тыс.
Автор вопроса
Здравствуйте. Запустив Мetasploit получил следующее портянку-предупреждение:

1. Несовпадение версии для правила сортировки в базе "msf". База была создана с правилами сортировки версии правил 2.36, но сейчас версия 2.37.
2. Перестройте все объекты в этой базе, задействующие основное правило сортировки, и выполните ALTER DATABASE msf REFRESH COLLATION VERSION , либо соберите postgres с правильной версией библиотеки. Как исправить?

PS: Действовал по документации (___postgrespro.ru/docs/postgrespro/15/collation): pg_import_system_collations() ; CREATE COLLATION... и ALTER DATABASE, но не помогло. Могбы снести и накатить по новой, но хочется разобраться и научиться.
Спасибо.
 
Сам спросил, сам отвечаю:

1. подключаемся к базе из консоли:
$ psql - localhost -U postgres

2. Создаем правило для новой версии:
postgres=#CREATE COLLATION russian (provider = libc, locale = 'ru_RU.utf8');
//Локаль та, что в системе : locale -a

3. Обновляем всю базу:
postgres=#ALTER DATABASE postgres REFRESH COLLATION VERSION;

4. Обновляем базу msf:
postgres=#ALTER DATABASE msf REFRESH COLLATION VERSION;

5. Выходим:
postgres=#\q

6. Делаем рестарт postgresql
$ sudo service postgresql restart

7. Запускаем msfconsole и видим, что все в порядке.

PS: Повнимательнее к точкам с запятой в конце команд. Полтора дня убил из-за них :)
 
При вводе 1 команды пишет не прошел проверку