Может ли Slick автоматически создавать таблицы в базе данных (генерировать SQL и выполнять) из моделей?
Я понял, что slick-codegen может генерировать классы scala из таблиц базы данных. Можем ли мы сделать наоборот, создав таблицы, если они не существуют в базе данных из моделей?
2 ответа
Решение
Вы можете создавать таблицы в Slick из модели: однако это не связано с инструментом кодогенерации.
Когда вы определяете модель в Slick, вы можете использовать .schema
метод для генерации команд схемы базы данных. Примеры этого есть в The Slick Manual:
// Assuming we have coffees and suppliers queries, we combine the schemas:
val schema = coffees.schema ++ suppliers.schema
// Now we can run a variety of commands to CREATE TABLE etc:
db.run(DBIO.seq(
schema.create,
schema.createIfNotExists,
schema.drop,
schema.dropIfExists
))
Однако это не происходит автоматически: вам нужно будет что-то написать в стартовом коде, чтобы решить, запускать или нет команды DDL.
Нет.
Идея Slick - создавать модели из схемы БД, а не наоборот.