aboutsummaryrefslogtreecommitdiffstats
path: root/spec/support/connections/sqlite3_connection.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/connections/sqlite3_connection.rb')
-rw-r--r--spec/support/connections/sqlite3_connection.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/spec/support/connections/sqlite3_connection.rb b/spec/support/connections/sqlite3_connection.rb
new file mode 100644
index 0000000000..abdbd24fe4
--- /dev/null
+++ b/spec/support/connections/sqlite3_connection.rb
@@ -0,0 +1,26 @@
+puts "Using native SQLite3"
+require "active_record"
+require 'logger'
+
+ActiveRecord::Base.logger = Logger.new("debug.log")
+
+db_file = "spec/support/fixtures/fixture_database.sqlite3"
+
+ActiveRecord::Base.configurations = {
+ "unit" => {
+ :adapter => 'sqlite3',
+ :database => db_file,
+ :timeout => 5000
+ }
+}
+
+unless File.exist?(db_file)
+ puts "SQLite3 database not found at #{db_file}. Rebuilding it."
+ require 'fileutils'
+ FileUtils.mkdir_p(File.dirname(db_file))
+ sqlite_command = %Q{sqlite3 "#{db_file}" "create table a (a integer); drop table a;"}
+ puts "Executing '#{sqlite_command}'"
+ raise "Seems that there is no sqlite3 executable available" unless system(sqlite_command)
+end
+
+ActiveRecord::Base.establish_connection("unit")