Как сбросить пароль для пользователей в базе данных PostgreSQL

Всем привет,

У нас есть несколько вопросов о том, как сбросить пароль для пользователей в Discourse.
Мы знаем, что команда “RAILS_ENV=production /usr/local/bin/bundle exec rake admin:create” может сбросить пароль для существующих пользователей или создать нового администратора. Однако мы не хотим сбрасывать пароль администратора этим способом. Мы хотим сбросить пароль для пользователей в базе данных PostgreSQL.
Информация о пользователях хранится в таблице users в базе данных PostgreSQL. Мы можем просмотреть пользователей и их пароли с помощью команды “select id, username, name, password_hash from users;”. Поэтому у нас два вопроса:

  1. Как шифруется пароль? MD5? SHA256?
  2. Можно ли сбросить пароль, выполнив команду " UPDATE users SET password_hash = ‘здесь хэш пароля’ WHERE id=1; "?

Если у кого-то есть идеи, это было бы очень полезно. Спасибо!

Какую проблему вы решаете? Почему бы не использовать ссылку для сброса пароля, чтобы они могли установить его самостоятельно?

Я бы сделал это через консоль Rails, а не через SQL. Мне пришлось бы посмотреть исходный код, чтобы получить нужный код.

Из консоли Rails:

User.find_by(username: 'gollum').update!(password: 'shiiiire!-BAGGINS!')

@supermathie, большое спасибо!
Мы можем сбросить пароль с помощью команды:

RAILS_ENV=production rails runner 'User.find_by_email("admin@example.com").update!(password:"AdminAdmin1234566xxxxxx")'