将 mysqldump 作为字符串加载
Loading mysqldump as string
为了测试我正在加载一个完整的 mysqldump(少于 100 行的测试数据库),我希望能够从 scala+anorm 加载它(没有 bash 脚本等) ,并尝试了这个:
import anorm._
import java.sql.DriverManager
object CheckDatabase {
def main(args: Array[String]): Unit = {
val jdbcUrl = "jdbc:mysql://db.local.test.com:3306/blackbox?user=dev&password=secret"
implicit val con: java.sql.Connection = DriverManager.getConnection(jdbcUrl)
val importSql = SQL(s"""${scala.io.Source.fromFile("blackbox_test.sql").mkString}""")
importSql.execute()
}
}
失败并出现错误:
[error] (run-main-0) com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE `rapport_blackbox_test` (
[error] `id` int(11) NOT NULL AUTO_INCREMENT,
[error] ' at line 13
我想它必须与换行符或其他东西有关。有没有我可以在 mysqldump 中使用的选项来生成可以正确加载的文件,或者是否有任何其他解决方法?
仅供参考:如果我将 SQL 语句更改为以下内容,它会正确创建 table
val importSql = SQL("CREATE TABLE `rapport_blackbox_test` (`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
只要将 "CREATE TABLE" 语句更改为没有换行符,就可以逐行阅读(并忽略空格)。
val lines = scala.io.Source.fromFile("src/test/resources/blackbox_test.sql").getLines()
lines.foreach(line => {
if(!line.isEmpty) SQL(s"""$line""").execute()
})
为了测试我正在加载一个完整的 mysqldump(少于 100 行的测试数据库),我希望能够从 scala+anorm 加载它(没有 bash 脚本等) ,并尝试了这个:
import anorm._
import java.sql.DriverManager
object CheckDatabase {
def main(args: Array[String]): Unit = {
val jdbcUrl = "jdbc:mysql://db.local.test.com:3306/blackbox?user=dev&password=secret"
implicit val con: java.sql.Connection = DriverManager.getConnection(jdbcUrl)
val importSql = SQL(s"""${scala.io.Source.fromFile("blackbox_test.sql").mkString}""")
importSql.execute()
}
}
失败并出现错误:
[error] (run-main-0) com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE `rapport_blackbox_test` (
[error] `id` int(11) NOT NULL AUTO_INCREMENT,
[error] ' at line 13
我想它必须与换行符或其他东西有关。有没有我可以在 mysqldump 中使用的选项来生成可以正确加载的文件,或者是否有任何其他解决方法?
仅供参考:如果我将 SQL 语句更改为以下内容,它会正确创建 table
val importSql = SQL("CREATE TABLE `rapport_blackbox_test` (`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
只要将 "CREATE TABLE" 语句更改为没有换行符,就可以逐行阅读(并忽略空格)。
val lines = scala.io.Source.fromFile("src/test/resources/blackbox_test.sql").getLines()
lines.foreach(line => {
if(!line.isEmpty) SQL(s"""$line""").execute()
})