aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVlad Uspensky <v.uspenskiy@icloud.com>2017-08-10 10:09:13 -0700
committerGitHub <noreply@github.com>2017-08-10 10:09:13 -0700
commit95f4104e034757c4fdfb89cd0fcf9ea4c4331566 (patch)
treea6624322fdbd4d45983dde57ae80546aa43546b0
parent77973b5559d17fcb82466fcd34cfbb1841b9932b (diff)
parent3cfe6b4b290309206d4fb663fe2199419b19886f (diff)
downloaddriver-core-95f4104e034757c4fdfb89cd0fcf9ea4c4331566.tar.gz
driver-core-95f4104e034757c4fdfb89cd0fcf9ea4c4331566.tar.bz2
driver-core-95f4104e034757c4fdfb89cd0fcf9ea4c4331566.zip
Merge pull request #59 from drivergroup/insert-test-data-methodv0.16.3v0.16.2
Method to insert test data from SQL file
-rw-r--r--src/main/scala/xyz/driver/core/database/database.scala26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/database/database.scala b/src/main/scala/xyz/driver/core/database/database.scala
index 8426309..7df44ba 100644
--- a/src/main/scala/xyz/driver/core/database/database.scala
+++ b/src/main/scala/xyz/driver/core/database/database.scala
@@ -6,9 +6,12 @@ import xyz.driver.core.date.Date
import xyz.driver.core.time.Time
import scala.concurrent.Future
+import scala.concurrent.ExecutionContext
package database {
+ import java.nio.file.{Files, Paths}
+
import com.typesafe.config.Config
trait Database {
@@ -136,6 +139,29 @@ package database {
def dropSchema(): Unit = {
Await.result(slickDal.execute(tables.schema.drop >> tables.dropNamespaceSchema), Duration.Inf)
}
+
+ def insertTestData(database: xyz.driver.core.database.Database, filePath: String)(
+ implicit executionContext: ExecutionContext): Future[Seq[Int]] = {
+
+ import database.profile.api.{DBIO => _, _}
+
+ val file = Paths.get(filePath)
+ val sqlLine = new String(Files.readAllBytes(file), "UTF-8")
+
+ val createInsertProcedure =
+ sqlu"""CREATE PROCEDURE INSERT_TEST_DATA()
+ MODIFIES SQL DATA
+ BEGIN ATOMIC
+ #$sqlLine
+ END;
+ """
+
+ val callInserts = sqlu"""{call INSERT_TEST_DATA()}"""
+
+ val dropInsertProcedure = sqlu"""drop PROCEDURE INSERT_TEST_DATA;"""
+
+ Future.sequence(Seq(createInsertProcedure, callInserts, dropInsertProcedure).map(slickDal.execute))
+ }
}
trait DatabaseObject extends ColumnTypes {