Aquí hay un diff para incorporarlo en spec/rails_helper de Discourse:
Sin embargo, falla en mi entorno de desarrollo basado en Docker:
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: debe ser el propietario de la base de datos discourse_test
Esto se debe a que maintain_test_schema! utiliza db:test:prepare e intenta eliminar primero la base de datos de prueba, a la cual (creo) el usuario discourse en un entorno basado en Docker no tiene acceso.
¿Podría alguien con un entorno de desarrollo nativo probarlo? Si funciona, ¿quizás valga la pena considerar el cambio?
Aplicé ese diff, eliminé mis bases de datos y luego ejecuté bin/rails db:create bin/rails db:migrate
luego elegí una especificación al azar
▶ bundle exec rspec spec/requests/permalinks_controller_spec.rb
Se produjo un error al cargar ./spec/requests/permalinks_controller_spec.rb.
Failure/Error: Group.find_by(id: id)
ActiveRecord::StatementInvalid:
PG::UndefinedTable: ERROR: la relación "groups" no existe
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: la relación "groups" no existe
# LINE 8: WHERE a.attrelid = '"groups"'::regclass
# ^
# ./app/models/group.rb:532:in `lookup_group'
No se encontraron ejemplos.
Finalizado en 0.00003 segundos (los archivos tardaron 1.6 segundos en cargarse)
0 ejemplos, 0 fallos, 1 error ocurrido fuera de los ejemplos