aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
diff options
context:
space:
mode:
authorGuilherme Mansur <guilherme.mansur@shopify.com>2019-06-10 16:22:29 -0400
committerGuilherme Mansur <guilherme.mansur@shopify.com>2019-06-17 14:00:53 -0400
commitfe30211574648fa21bff958a3cf952fd0c20c3b1 (patch)
treed0f4c8b65fadf52ea0b0474c7b646b216e5b4a9f /activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
parentc65acad0df6b332324c24e725c7d581bd76f9760 (diff)
downloadrails-fe30211574648fa21bff958a3cf952fd0c20c3b1.tar.gz
rails-fe30211574648fa21bff958a3cf952fd0c20c3b1.tar.bz2
rails-fe30211574648fa21bff958a3cf952fd0c20c3b1.zip
Add database_exists? method to connection adapters
When SQLite connects it will silently create a database if the database does not exist. This behaviour causes different issues because of inconsistent behaviour between adapters: #36383, #32914. This commit adds a `database_exists?` method as a way to check the database without creating it. This is a stepping stone to fully resolving the above issues.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_adapter.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
index c0ead17b3b..f9edb12759 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
@@ -264,6 +264,11 @@ module ActiveRecord
self.class::ADAPTER_NAME
end
+ # Does the database for this adapter exist?
+ def self.database_exists?(config)
+ raise NotImplementedError
+ end
+
# Does this adapter support DDL rollbacks in transactions? That is, would
# CREATE TABLE or ALTER TABLE get rolled back by a transaction?
def supports_ddl_transactions?