问题标签 [sqldelight]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
887 浏览

kotlin - sqldelight:如何确保只调用一次`create`

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

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

我正在寻找的是这样的:

我以为我可以为此使用迁移,但是迁移对于 sqldelight 的工作方式似乎与我预期的不同(我试图在迁移中创建表,但这不起作用)。

0 投票
2 回答
1639 浏览

android - 如何在 Kotlin 协程中使用 Sqldelight

SqlDelight 显然有 Kotlin 协程扩展函数,但我不知道如何实现它们,因为我找不到文档。

我有一个看起来像这样的普通查询:

我可以把它变成一个挂起功能吗?

0 投票
1 回答
377 浏览

android - 如何使用 sqldelight 读取位于资产中的 db 文件 - Android

我有大量的数据库,我只需要在安装应用程序后创建,这就是我将数据库文件放在资产文件夹中的原因,但我不知道如何使用 SQLDELIGHT 读取它,任何想法?

0 投票
1 回答
217 浏览

android - SQLDelight - 修改子表时在父表上发出

当使用 SQLDelight 更新子表时,我还没有遇到在父表上发出通知的明显方法。

这是一个 E/R 图,大致概述了我在玩的结构:

在此处输入图像描述

这大致转换为以下数据库模式:

这些.sq文件:

而我想要发生的是,当 T 的属性被更新时,SELECT *通知 S(以及 R)上的查询,同样,当 S 的属性更新时,通知 R 上的查询。

有没有人遇到过使用 SQLDelight 执行此操作的方法?

在 SqlBrite 中,我可以在查询中指定一组触发器表,这样当修改任何触发器表时,查询将重新运行,并将结果集发送到下游。所以我可以将我的触发器表声明为R, S, 和TonSELECT * FROM R并修改为R, S, 或T导致它被重新查询。

0 投票
0 回答
19 浏览

sqlite - Sqlbrite 数据库如何使用调度器

我是 sqlbrite 数据库的新手,在创建数据库包装器时它要求 rxjavaSchedulers

我想知道的是

我在包装器中传递的调度程序是否用于运行insertdeleteupdate查询

或者

它是否仅用于 QueryObservable 即 createQuery 用于观察数据库表。

谁能帮我这个?

0 投票
1 回答
879 浏览

android - 使用 Sqldelight 更新对象数据

我试图弄清楚如何在传递对象Update的文件中编写查询,.sq它将更新整行

我知道您可以执行正常的更新语句,在其中设置具有值的列,但是有没有办法只传递数据对象,类似于我可以插入这样的对象

我在类似地更新记录时找不到任何文档

0 投票
1 回答
702 浏览

build.gradle - 无法解析 com.squareup.sqldelight:native-driver:1.3.0

我正在尝试构建一个 Kotlin 多平台项目作为 iOS 和 Android 应用程序的共享模块。我正在尝试集成SQLDelight,但在同步 Gradle 时遇到了这个错误。下面分别是error和build.gradle文件。

错误

无法解析 com.squareup.sqldelight:native-driver:1.3.0。要求:项目:

可能的解决方案: - 声明提供工件的存储库,请参阅 https://docs.gradle.org/current/userguide/declaring_repositories.html上的文档

构建.gradle

0 投票
1 回答
424 浏览

android - 如何更改 SQLDelight 中表的主键?

我们正在做一些项目,我们有 SQLDelight 数据库和 DBRevisionPhrase 表:

在我们想添加一个新字段 reviewType,并将其添加到 PRIMARY KEY 之后,结果是这样的:

但是我们也需要迁移,尝试这个我们失败了:

有错误:

我们是否可以以某种方式更改表的主键,或者我们需要删除表,并通过移动所有数据创建新表?

0 投票
0 回答
209 浏览

database - SqlDelight Flow 扩展不适用于本机

运行时环境 SQLDelight 版本:1.4.0(也尝试使用 1.3.0)。应用操作系统:iOS(多平台)

描述错误 我们有一个多平台(Android/iOS)项目,我正在尝试在通用代码中使用 Flow 扩展。我可以看到 SqlDelight 数据库在两个平台上都运行良好。虽然流仅在 Android 上触发(没有问题),但在 iOScollect上不会触发流中的任何事件。也没有显示崩溃或相关日志。根据文档https://cashapp.github.io/sqldelight/multiplatform_sqlite/coroutines/添加扩展。

代码在主线程上运行。

任何想法如何调试?也许应该启用数据库中的某些内容以允许回调?

0 投票
1 回答
157 浏览

database - SQLDelight v1.4 不生成界面

v1.4开始,SQLDelight 只生成数据类。之前,该工具生成接口和该接口的默认实现。这很容易组合具有相关投影的对象。有什么改变可以让这些界面恢复吗?