aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2017-04-29 19:36:30 +0200
committerTeddy Wing2017-04-29 19:36:30 +0200
commit9f741398657ca47483211ffa6cb0a9dfbe3f88c8 (patch)
tree1600526f226c0e9846205b21ff2a09065f6f624f
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.
-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,