未验证 提交 054893d5 编写于 作者: R Ryuta Kamizono 提交者: GitHub

Merge pull request #32923 from yahonda/bump_sqlite3_version_to_38

Bump minimum SQLite version to 3.8
......@@ -1062,13 +1062,7 @@ def assume_migrated_upto_version(version, migrations_paths)
if (duplicate = inserting.detect { |v| inserting.count(v) > 1 })
raise "Duplicate migration #{duplicate}. Please renumber your migrations to resolve the conflict."
end
if supports_multi_insert?
execute insert_versions_sql(inserting)
else
inserting.each do |v|
execute insert_versions_sql(v)
end
end
execute insert_versions_sql(inserting)
end
end
......
......@@ -137,6 +137,10 @@ def initialize(version_string)
def <=>(version_string)
@version <=> version_string.split(".").map(&:to_i)
end
def to_s
@version.join(".")
end
end
def valid_type?(type) # :nodoc:
......@@ -320,6 +324,7 @@ def supports_comments_in_create?
def supports_multi_insert?
true
end
deprecate :supports_multi_insert?
# Does this adapter support virtual columns?
def supports_virtual_columns?
......
......@@ -104,6 +104,10 @@ def initialize(connection, logger, connection_options, config)
@active = true
@statements = StatementPool.new(self.class.type_cast_config_to_integer(config[:statement_limit]))
if sqlite_version < "3.8.0"
raise "Your version of SQLite (#{sqlite_version}) is too old. Active Record supports SQLite >= 3.8."
end
configure_connection
end
......@@ -116,7 +120,7 @@ def supports_savepoints?
end
def supports_partial_index?
sqlite_version >= "3.8.0"
true
end
def requires_reloading?
......@@ -124,7 +128,7 @@ def requires_reloading?
end
def supports_foreign_keys_in_create?
sqlite_version >= "3.6.19"
true
end
def supports_views?
......@@ -139,10 +143,6 @@ def supports_json?
true
end
def supports_multi_insert?
sqlite_version >= "3.7.11"
end
def active?
@active
end
......
......@@ -295,6 +295,10 @@ def test_log_invalid_encoding
assert_equal "ы", error.message
end
end
def test_supports_multi_insert_is_deprecated
assert_deprecated { @connection.supports_multi_insert? }
end
end
class AdapterForeignKeyTest < ActiveRecord::TestCase
......
......@@ -37,24 +37,6 @@ def test_dump_schema_information_outputs_lexically_ordered_versions
ActiveRecord::SchemaMigration.delete_all
end
if current_adapter?(:SQLite3Adapter)
%w{3.7.8 3.7.11 3.7.12}.each do |version_string|
test "dumps schema version for sqlite version #{version_string}" do
version = ActiveRecord::ConnectionAdapters::SQLite3Adapter::Version.new(version_string)
ActiveRecord::Base.connection.stubs(:sqlite_version).returns(version)
versions = %w{ 20100101010101 20100201010101 20100301010101 }
versions.reverse_each do |v|
ActiveRecord::SchemaMigration.create!(version: v)
end
schema_info = ActiveRecord::Base.connection.dump_schema_information
assert_match(/20100201010101.*20100301010101/m, schema_info)
ActiveRecord::SchemaMigration.delete_all
end
end
end
def test_schema_dump
output = standard_dump
assert_match %r{create_table "accounts"}, output
......@@ -192,7 +174,7 @@ def test_schema_dumps_index_columns_in_right_order
def test_schema_dumps_partial_indices
index_definition = dump_table_schema("companies").split(/\n/).grep(/t\.index.*company_partial_index/).first.strip
if current_adapter?(:PostgreSQLAdapter, :SQLite3Adapter) && ActiveRecord::Base.connection.supports_partial_index?
if ActiveRecord::Base.connection.supports_partial_index?
assert_equal 't.index ["firm_id", "type"], name: "company_partial_index", where: "(rating > 10)"', index_definition
else
assert_equal 't.index ["firm_id", "type"], name: "company_partial_index"', index_definition
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册