Может ли 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 - создавать модели из схемы БД, а не наоборот.

Другие вопросы по тегам