Open gap777 opened 1 year ago
Hotpatch initializer to fix this issue:
# frozen_string_literal: true
begin
DatabaseValidations::Adapters.factory(ActiveRecord::Base)
rescue DatabaseValidations::Errors::UnknownDatabase
# Add support for the postgis adapter.
DatabaseValidations::Adapters::PostgresqlAdapter.send(:remove_const, :ADAPTER)
DatabaseValidations::Adapters::PostgresqlAdapter::ADAPTER = /\A(?:postgresql|postgis)\z/
end
This is based on a similar patch I made (today) to support the trilogy adapter. You don't have to make any other code changes because the adapter is checked with a case when statement.
FYI, here is the original hotpatch initializer for trilogy support:
# frozen_string_literal: true
begin
DatabaseValidations::Adapters.factory(ActiveRecord::Base)
rescue DatabaseValidations::Errors::UnknownDatabase
# Add support for the trilogy adapter.
DatabaseValidations::Adapters::MysqlAdapter.send(:remove_const, :ADAPTER)
DatabaseValidations::Adapters::MysqlAdapter::ADAPTER = /\A(?:mysql2|trilogy)\z/
end
If you're using an older Ruby version, you might want to freeze the regex. Newer Ruby versions freeze regex literals.
Adding
gem 'activerecord-postgis-adapter'
to yourGemfile
and configuringdatabase.yml
to use thepostgis
adapter:Will yield a system that is incompatible with
database_validations
, because the adapter name doesn't match,postgres
.Can you extend your supported adapters to also support postgres with the GIS extension?
Thanks!