slick 可以从模型中自动在数据库中创建表(生成 SQL 并执行)吗?
Can slick automatically create tables in the database (generate SQL and execute) from the models?
我知道 slick-codegen 可以从数据库表生成 scala 类。我们可以做相反的事情,如果数据库中不存在模型中的表,则创建表吗?
您可以从模型在 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-codegen 可以从数据库表生成 scala 类。我们可以做相反的事情,如果数据库中不存在模型中的表,则创建表吗?
您可以从模型在 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 命令。