Merge pull request #45373 from ghiculescu/sqlite3-strict-database-yml
Let sqlite `strict` config read from `database.yml` or config
This commit is contained in:
commit
2077524d5e
@ -32,9 +32,10 @@ def sqlite3_connection(config)
|
||||
Dir.mkdir(dirname) unless File.directory?(dirname)
|
||||
end
|
||||
|
||||
config[:strict] = ConnectionAdapters::SQLite3Adapter.strict_strings_by_default unless config.key?(:strict)
|
||||
db = SQLite3::Database.new(
|
||||
config[:database].to_s,
|
||||
config.merge(results_as_hash: true, strict: ConnectionAdapters::SQLite3Adapter.strict_strings_by_default)
|
||||
config.merge(results_as_hash: true)
|
||||
)
|
||||
|
||||
ConnectionAdapters::SQLite3Adapter.new(db, logger, nil, config)
|
||||
|
@ -635,6 +635,44 @@ def test_strict_strings_by_default
|
||||
end
|
||||
end
|
||||
|
||||
def test_strict_strings_by_default_and_true_in_database_yml
|
||||
conn = Base.sqlite3_connection(database: ":memory:", adapter: "sqlite3", strict: true)
|
||||
conn.create_table :testings
|
||||
|
||||
error = assert_raises(StandardError) do
|
||||
conn.add_index :testings, :non_existent
|
||||
end
|
||||
assert_match(/no such column: non_existent/, error.message)
|
||||
|
||||
with_strict_strings_by_default do
|
||||
conn = Base.sqlite3_connection(database: ":memory:", adapter: "sqlite3", strict: true)
|
||||
conn.create_table :testings
|
||||
|
||||
error = assert_raises(StandardError) do
|
||||
conn.add_index :testings, :non_existent2
|
||||
end
|
||||
assert_match(/no such column: non_existent2/, error.message)
|
||||
end
|
||||
end
|
||||
|
||||
def test_strict_strings_by_default_and_false_in_database_yml
|
||||
conn = Base.sqlite3_connection(database: ":memory:", adapter: "sqlite3", strict: false)
|
||||
conn.create_table :testings
|
||||
|
||||
assert_nothing_raised do
|
||||
conn.add_index :testings, :non_existent
|
||||
end
|
||||
|
||||
with_strict_strings_by_default do
|
||||
conn = Base.sqlite3_connection(database: ":memory:", adapter: "sqlite3", strict: false)
|
||||
conn.create_table :testings
|
||||
|
||||
assert_nothing_raised do
|
||||
conn.add_index :testings, :non_existent
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def assert_logged(logs)
|
||||
subscriber = SQLSubscriber.new
|
||||
|
Loading…
Reference in New Issue
Block a user