【发布时间】:2017-04-26 22:56:03
【问题描述】:
我在我的一个项目中使用了 jooq(版本 3.5.3),我对此非常满意。现在我遇到的情况是,最好检查数据库中的表是否可用,如果不是,请创建它。
当我在新系统上安装我的软件时,这会派上用场,我可以自动处理表创建。
我最初的想法是使用:
DSLContext create = DSL.using(conn, SQLDialect.POSTGRES);
for (Table<?> t : Public.PUBLIC.getTables()) {
create.createTable(t);
}
但是,由于缺少.execute(),它什么也不做。但这显然只有在至少添加一个.column() 时才有可能。如果我这样做了
create.createTable(t).column("foo", SQLDataType.INTEGER).execute();
它可以工作,并创建表,但(自然)只有一个名为 foo 的列。
所以,问题是: 有没有一种懒惰的方法来在数据库中创建适合生成代码的表,还是我必须为此使用更手动的方法?
【问题讨论】: