Incompatible with postgis adapter
Adding gem 'activerecord-postgis-adapter' to your Gemfile and configuring database.yml to use the postgis adapter:
default: &default
adapter: postgis
encoding: unicode
....
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!
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.