Migração automática do esquema do banco de dados de teste

Relacionado: Db:drop, create & migrate behavior with RAILS_ENV=development - #2 by taylorthurlow - A May Of WTFs - Ruby on Rails Discussions

Não tenho certeza se já exploramos isso antes, mas o Rails pode manter automaticamente o esquema do banco de dados de teste com ActiveRecord::Migration.maintain_test_schema! (definição do método, em rails/test_help, no gerador de helpers mais recente do rspec/rails)

Aqui está um diff para incorporá-lo ao spec/rails_helper do Discourse:

No entanto, ele falha na minha configuração de desenvolvimento baseada em Docker:

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

Isso ocorre porque maintain_test_schema! utiliza db:test:prepare e tenta remover o banco de dados de teste primeiro, para o qual (creio eu) o usuário discourse na configuração baseada em Docker não tem acesso.

Alguém com uma configuração de desenvolvimento nativa poderia testar? Se funcionar, talvez a mudança valha a pena ser considerada?

Apliquei esse diff, excluí meus bancos de dados e executei:
bin/rails db:create
bin/rails db:migrate

Em seguida, escolhi uma especificação aleatória:

▶ bundle exec rspec spec/requests/permalinks_controller_spec.rb
Ocorreu um erro ao carregar ./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)>'
# ------------------
# --- Causado por: ---
# PG::UndefinedTable:
#   ERROR:  relation "groups" does not exist
#   LINE 8:  WHERE a.attrelid = '"groups"'::regclass
#                               ^
#   ./app/models/group.rb:532:in `lookup_group'
Nenhum exemplo encontrado.


Finalizado em 0,00003 segundos (os arquivos levaram 1,6 segundos para carregar)
0 exemplos, 0 falhas, 1 erro ocorreu fora dos exemplos

Nunca entrei em config.before('suite').