aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorTeddy Wing2017-04-29 19:36:30 +0200
committerTeddy Wing2017-04-29 19:36:30 +0200
commit9f741398657ca47483211ffa6cb0a9dfbe3f88c8 (patch)
tree1600526f226c0e9846205b21ff2a09065f6f624f /lib
parent295407026c52216869a98dbed877a09edb801bc6 (diff)
downloaddbshell-rails-9f741398657ca47483211ffa6cb0a9dfbe3f88c8.tar.bz2
Get `rake dbshell` working for SQLite3
Add `DBShell::Sqlite3.runshell`, which takes database connection information and starts a SQLite3 shell. Currently the Rake task just calls the SQLite3 `.runshell` method directly without any database adapter discrimination and also forces the development environment. It's nice to see it working. Now, we'll need to clean up those parts of the Rakefile.
Diffstat (limited to 'lib')
-rw-r--r--lib/dbshell/rails/tasks/dbshell.rake8
-rw-r--r--lib/dbshell/sqlite3_client.rb5
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/dbshell/rails/tasks/dbshell.rake b/lib/dbshell/rails/tasks/dbshell.rake
index 6a74c53..5d19338 100644
--- a/lib/dbshell/rails/tasks/dbshell.rake
+++ b/lib/dbshell/rails/tasks/dbshell.rake
@@ -1,6 +1,8 @@
+require 'dbshell/sqlite3_client'
+
task :dbshell do
# {"default"=>{"adapter"=>"sqlite3", "pool"=>5, "timeout"=>5000}, "development"=>{"adapter"=>"sqlite3", "pool"=>5, "timeout"=>5000, "database"=>"db/development.sqlite3"}, "test"=>{"adapter"=>"sqlite3", "pool"=>5, "timeout"=>5000, "database"=>"db/test.sqlite3"}, "production"=>{"adapter"=>"sqlite3", "pool"=>5, "timeout"=>5000, "database"=>"db/production.sqlite3"}}
- Rails.application.config.database_configuration
- # system('bash')
- exec('bash')
+ DBShell::Sqlite3Client.runshell(
+ Rails.application.config.database_configuration['development']
+ )
end
diff --git a/lib/dbshell/sqlite3_client.rb b/lib/dbshell/sqlite3_client.rb
index 7e962d7..adc71ef 100644
--- a/lib/dbshell/sqlite3_client.rb
+++ b/lib/dbshell/sqlite3_client.rb
@@ -1,6 +1,11 @@
class DBShell::Sqlite3Client
EXECUTABLE_NAME = 'sqlite3'
+ def self.runshell(db_info)
+ args = self.build_command(db_info)
+ exec(*args)
+ end
+
def self.build_command(db_info)
args = [
EXECUTABLE_NAME,