Как выполнить sql файл с Slick 3.0.0 - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть такая структура

src
└── main
    ├── resources
    │   └── inserts.sql
    └── my.package
        └── Main.scala

В Main.scala Я хочу взять файл inserts.sql и использовать Slick 3.0.0 для его запуска на моей БД.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Похоже, что нет способа выполнить файл sql с помощью Slick other, затем загрузить его в память в виде строки и выполнить с помощью sql, sqlu или tsql.

Осторожно что в этом случае интерполяция $ предназначена для вставки переменных связывания в запрос. Чтобы объединить буквенные значения в запросе, вы должны использовать #$. Так как в этом случае переменная является целым запросом, мы должны сделать

val inserts_sql = Source.fromResource("inserts.sql").mkString

db.run(sqlu"#$query")
0 голосов
/ 04 апреля 2020

Вы можете прочитать содержимое файла:

val query = scala.io.Source.fromResource("inserts.sql").mkString

, а затем создать запрос, используя sql или sqlu интерполяторы:

//https://scala-slick.org/doc/3.0.0/sql.html
sql"$query".as[ExpectedType]

и запустить его как всегда:)

PS: не проверено. Не подготовил env сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...