Автоматическая миграция схемы тестовой базы данных

Связанное: Db:drop, create & migrate behavior with RAILS_ENV=development - #2 by taylorthurlow - A May Of WTFs - Ruby on Rails Discussions

Не уверен, обсуждали ли мы это ранее, но Rails может автоматически поддерживать схему тестовой базы данных с помощью ActiveRecord::Migration.maintain_test_schema! (определение метода, в rails/test_help, в последнем генераторе помощника rspec/rails)

Вот дифф для интеграции этого в spec/rails_helper проекта Discourse:

Однако на моей среде разработки на базе Docker это не работает:

ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR:  must be owner of database discourse_test

Это происходит потому, что maintain_test_schema! использует db:test:prepare и пытается сначала удалить тестовую базу данных, к которой (как я полагаю) у пользователя discourse в среде на базе Docker нет доступа.

Мог бы кто-нибудь с нативной средой разработки попробовать это? Если это сработает, возможно, стоит рассмотреть такое изменение?

Я применил этот diff, удалил базы данных и выполнил:
bin/rails db:create
bin/rails db:migrate

затем выбрал случайный тест:

▶ bundle exec rspec spec/requests/permalinks_controller_spec.rb 
Произошла ошибка при загрузке ./spec/requests/permalinks_controller_spec.rb.
Failure/Error: Group.find_by(id: id)

ActiveRecord::StatementInvalid:
  PG::UndefinedTable: ERROR:  relation "groups" does not exist
  LINE 8:  WHERE a.attrelid = '"groups"'::regclass
                              ^
# ./app/models/group.rb:532:in `lookup_group'
# ./app/models/group.rb:516:in `block in ensure_automatic_groups!'
# ./app/models/group.rb:515:in `each_key'
# ./app/models/group.rb:515:in `ensure_automatic_groups!'
# (eval):3:in `block (2 levels) in run_file'
# ./spec/rails_helper.rb:79:in `<top (required)>'
# ./spec/requests/permalinks_controller_spec.rb:3:in `require'
# ./spec/requests/permalinks_controller_spec.rb:3:in `<top (required)>'
# ------------------
# --- Вызвано: ---
# PG::UndefinedTable:
#   ERROR:  relation "groups" does not exist
#   LINE 8:  WHERE a.attrelid = '"groups"'::regclass
#                               ^
#   ./app/models/group.rb:532:in `lookup_group'
Примеров не найдено.


Завершено за 0.00003 секунды (загрузка файлов заняла 1.6 секунды)
0 примеров, 0 неудач, 1 ошибка, возникшая вне примеров

Я никогда не попадал в config.before('suite').