From e1f6821105a23fe4dc6e37903fb642a253e89e81 Mon Sep 17 00:00:00 2001 From: Brooke Kuhlmann Date: Mon, 15 Oct 2018 16:58:22 -0600 Subject: Refactored abstract MySQL adapter to support lazy version check. Will allow sub classes to override the protected `#check_version` method hook if desired. For example, this will be most helpful in sub classes that wish to support lazy initialization because the version check can be postponed until the connection is ready to be initialized. --- .../connection_adapters/abstract_mysql_adapter.rb | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb') diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index d40f38fb77..5ad3fdbb88 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -26,6 +26,7 @@ module ActiveRecord # ActiveRecord::ConnectionAdapters::Mysql2Adapter.emulate_booleans = false class_attribute :emulate_booleans, default: true + SUPPORTED_VERSION = "5.5.8" NATIVE_DATABASE_TYPES = { primary_key: "bigint auto_increment PRIMARY KEY", string: { name: "varchar", limit: 255 }, @@ -54,10 +55,7 @@ module ActiveRecord super(connection, logger, config) @statements = StatementPool.new(self.class.type_cast_config_to_integer(config[:statement_limit])) - - if version < "5.5.8" - raise "Your version of MySQL (#{version_string}) is too old. Active Record supports MySQL >= 5.5.8." - end + check_version end def version #:nodoc: @@ -534,6 +532,15 @@ module ActiveRecord end end + protected + + def check_version + if version < SUPPORTED_VERSION + raise "Your version of MySQL (#{version_string}) is too old. Active Record supports " \ + "MySQL >= #{SUPPORTED_VERSION}." + end + end + private def combine_multi_statements(total_sql) total_sql.each_with_object([]) do |sql, total_sql_chunks| -- cgit v1.2.3