Нет, сэр, нет проблем. Спасибо за информацию.
В моём случае это произошло потому, что я использовал scram-sha-256, а не trust в качестве механизма аутентификации. Поскольку scram-sha-256 требует наличия физического пользователя. Вы, вероятно, можете обойти это, создав карту пользователей в файле pg_ident.conf, но я не уверен, как именно это сделать.
Если под «физическим пользователем» вы имеете в виду «пользователя системы Unix», то нет, scram-sha-256 не требует настройки такого пользователя в системе. Метод peer требует наличия системного пользователя, а trust — это в целом ужасная идея, особенно при использовании удалённого сервера базы данных.
Добавлять ли нам следующее в дополнение к существующему процессу?
CREATE EXTENSION vector;
Поскольку я вижу это расширение в шаблоне postgres для discourse_docker?
Это используется основным плагином Discourse AI, поэтому он вам понадобится, если вы его используете.
Я не помню, чтобы включал этот плагин. На самом деле я только что проверил, что он отключён. Однако недавно, когда я пересобрал образ и последний коммит стал новее этого — GitHub - discourse/discourse at 0eab7daea450e1d7e416c46a23aaaf95687d4855 · GitHub, команда rake db:migrate начала выдавать ошибки. Если же я использовал коммит, предшествующий указанному выше, для начальной настройки, всё работало без проблем.
Теперь, когда я включил это расширение, коммиты, сделанные после этого, работают без сбоев.
Но теперь плагин AI встроен в ядро, поэтому вам всё равно понадобится расширение, независимо от того, используете ли вы плагин AI (или специально удаляете его), верно?
Да, это верно, так как миграции выполняются независимо от включения плагина.
При использовании управляемого сервера PostgreSQL от имени несуперпользователя миграция базы данных завершится ошибкой на шаге EnablePgVectorExtension (‘20230710171141’), даже если расширение vector было добавлено в базу данных вручную. Существует ли способ отключить этот шаг миграции или добавить проверку на наличие vector?
Причина:
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ОШИБКА: поскольку vector не является доверенным расширением, использовать CREATE EXTENSION vector могут только члены группы “azure_pg_admin” (ActiveRecord::StatementInvalid)
СОВЕТ: чтобы узнать, как разрешить использование расширения, или просмотреть список разрешенных расширений, обратитесь к документации по ссылке Considerations with the Use of Extensions and Modules - Azure Database for PostgreSQL | Microsoft Learn
Мы объединили PR для решения этой проблемы в прошлом месяце. У вас установлена последняя версия?
Спасибо! Я использую образ Docker discourse/discourse:3.5.3. Не уверен, включает ли он последний PR? (Редакция: Релиз v2025.12.0 включает PR и работает с базой данных Azure)