Kotlin sqldelight:如何确保只调用一次'create'

Kotlin sqldelight:如何确保只调用一次'create',kotlin,sqldelight,Kotlin,Sqldelight,如何确保在使用应用程序时只调用一次Database.Schema.create()?您可以将…如果不存在…添加到表定义中,然后在每次启动期间执行SQL指令,但在第一次运行后不会创建表,但是,我不确定这是否是正确的方法 或者,我可以查询这些表并检查它们是否已经存在 我要找的是: if (<first run>) { Database.Schema.create() } if(){ Database.Schema.create() } 我想我可以使用迁移来实现这一点,但迁移对

如何确保在使用应用程序时只调用一次
Database.Schema.create()
?您可以将
…如果不存在…
添加到表定义中,然后在每次启动期间执行SQL指令,但在第一次运行后不会创建表,但是,我不确定这是否是正确的方法

或者,我可以查询这些表并检查它们是否已经存在

我要找的是:

if (<first run>) {
    Database.Schema.create()
}
if(){
Database.Schema.create()
}

我想我可以使用迁移来实现这一点,但迁移对sqldelight的效果似乎与我预期的不同(我尝试在迁移中创建表,但这不起作用)。

这里发布了一个非常有用的回复:

它基本上归结为将当前版本存储在
PRAGMA user_version
(最初为0)中,并在该版本与最新迁移版本不同时执行迁移


这样做的优点是版本存储在数据库中。我在Kotlin项目中采用了此解决方案。

您编写此解决方案的目的是什么平台?Android、iOS、JVM?JVM(这只是至少有12个字符的额外文本…)