aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/dbshell/client/database.rb3
-rw-r--r--lib/dbshell/client/mysql.rb5
-rw-r--r--spec/dbshell/client/database_spec.rb6
3 files changed, 14 insertions, 0 deletions
diff --git a/lib/dbshell/client/database.rb b/lib/dbshell/client/database.rb
index 86cbfef..b6be74b 100644
--- a/lib/dbshell/client/database.rb
+++ b/lib/dbshell/client/database.rb
@@ -1,5 +1,6 @@
require 'dbshell/client/sqlite3'
require 'dbshell/client/postgres'
+require 'dbshell/client/mysql'
module DBShell
module Client
@@ -10,6 +11,8 @@ module DBShell
DBShell::Client::SQLite3
when 'postgresql'
DBShell::Client::Postgres
+ when 'mysql2'
+ DBShell::Client::MySQL
else
raise UnsupportedDatabaseAdapter
end
diff --git a/lib/dbshell/client/mysql.rb b/lib/dbshell/client/mysql.rb
index 6cb8233..536186a 100644
--- a/lib/dbshell/client/mysql.rb
+++ b/lib/dbshell/client/mysql.rb
@@ -3,6 +3,11 @@ module DBShell
class MySQL
EXECUTABLE_NAME = 'mysql'
+ def self.runshell(db_info)
+ args = self.build_command(db_info)
+ exec(*args)
+ end
+
def self.build_command(db_info)
args = [EXECUTABLE_NAME]
diff --git a/spec/dbshell/client/database_spec.rb b/spec/dbshell/client/database_spec.rb
index d553871..0670334 100644
--- a/spec/dbshell/client/database_spec.rb
+++ b/spec/dbshell/client/database_spec.rb
@@ -15,6 +15,12 @@ describe DBShell::Client::Database do
}).must_equal(DBShell::Client::Postgres)
end
+ it "handles MySQL" do
+ DBShell::Client::Database.handler({
+ 'adapter' => 'mysql2'
+ }).must_equal(DBShell::Client::MySQL)
+ end
+
it "raises an error if no suitable adapter is found" do
proc do
DBShell::Client::Database.handler({