diff options
author | Teddy Wing | 2017-04-29 19:36:30 +0200 |
---|---|---|
committer | Teddy Wing | 2017-04-29 19:36:30 +0200 |
commit | 9f741398657ca47483211ffa6cb0a9dfbe3f88c8 (patch) | |
tree | 1600526f226c0e9846205b21ff2a09065f6f624f /lib | |
parent | 295407026c52216869a98dbed877a09edb801bc6 (diff) | |
download | dbshell-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.rake | 8 | ||||
-rw-r--r-- | lib/dbshell/sqlite3_client.rb | 5 |
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, |