diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb index fc172fee00d32..4fd1bb119b56a 100644 --- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb @@ -111,6 +111,14 @@ def initialize(...) @config[:database] = File.expand_path(@config[:database], Rails.root) if defined?(Rails.root) dirname = File.dirname(@config[:database]) unless File.directory?(dirname) + puts "Directory name inside Adapter: #{dirname}" + file_stat = File.stat(dirname) + # Extract permission bits + permissions = file_stat.mode + # Convert permission bits to octal representation + permission_octal = permissions.to_s(8) + # Print the file permissions + puts "File permissions for #{dirname}: #{permission_octal}" begin FileUtils.mkdir_p(dirname) rescue SystemCallError diff --git a/activerecord/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb b/activerecord/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb index 6ec26c7958636..960ee73f24fd3 100644 --- a/activerecord/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +++ b/activerecord/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb @@ -31,7 +31,18 @@ def test_bad_connection else puts "Error: Permissions couldn't be changed for #{dir}" end + puts "Directory path: #{dir}" db_path = File.join(dir, "db/cant-be-created.db") + puts "DB File will be stored on #{db_path}" + + file_stat = File.stat(dir) + # Extract permission bits + permissions = file_stat.mode + # Convert permission bits to octal representation + permission_octal = permissions.to_s(8) + # Print the file permissions + puts "File permissions for #{dir}: #{permission_octal}" + error = assert_raise ActiveRecord::NoDatabaseError do connection = SQLite3Adapter.new(adapter: "sqlite3", database: db_path) connection.drop_table "ex", if_exists: true