问题标签 [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.
kotlin - 如果 SQLDelight 多平台位于单独的模块中,则不生成架构
我已经模块化了我的共享代码,所以目前我有一个shared
模块(kmp),在这个模块里面我有shared:core
和shared:database
(也是多平台的)。
如果我在共享模块中设置数据库,它可以工作:我将 AppDatabase.sq 放在共享的 commonMain 文件夹中,在 sqldelight/com/example/kmmbase/database/ 中,并且模式已正确生成。
另一方面,如果我尝试将它移动到shared:database
模块中,它不会生成模式,驱动程序也不会编译。我将 AppDatabase.sq 文件添加到相同的路径,但现在位于shared:database
模块的 commonMain 中,并将 sqldelight 插件和 gradle 配置从shared
gradle 文件移动到shared:database
gradle 文件。
我拥有的gradle配置如下:
我为 .sq 文件尝试了不同的位置,并且在每个位置上我都匹配 gradle config 的 packageName:
- sqldelight/com/example/kmmbase/shared/
- sqldelight/com/example/kmmbase/database/
- sqldelight/com/example/数据库/
- sqldelight/com/example/数据库/数据库/
- sqldelight/数据库/
- ...
知道我可能做错了什么吗?
编辑:这是一个带有代码的仓库。
sqldelight - 如何在后台线程中执行查询?
我目前正在寻找一个由 SQLdelight 支持的 KMM 应用程序,用于所有与域相关的操作。
SQLdelight 似乎提供了非常好的接口,但是似乎所有的写调用(插入/更新/删除)都是使用阻塞调用实现的,所以我担心它会通过阻塞主线程来损害应用程序的响应能力很多.
是否有推荐的方法来执行此类操作而不阻塞主线程?
该应用程序也必须在 iOS 上运行,所以我不能承受太多的冻结。
sqldelight - 用于时间戳的 Sqldelight 和 Postgres 列适配器
使用这个
编译但适配器永远不会在 postgres 中从 localdatetime 转换为 TIMESTAMP。相反,我收到
我认为这是一个错误,但我先在这里询问是否有人有任何想法,然后再在 github 上提交错误报告。谢谢。
android - 我可以使用 SqlDelight 创建一个内存数据库以在 Android 中运行吗?
我有一个运行良好的 SqlDelight 数据库。我这样创建它:
对于单元测试,我创建了一个这样的内存数据库:
我想对在模拟器或物理设备上运行的 androidTests 做同样的事情,但是 JdbcSqliteDriver 在 Android 中不起作用,大概是因为 Android 默认没有安装该包。
如何在 AndroidTest(或生产环境)中运行内存数据库?
android - 从 ViewModel 中的 SqlDelight 收集流时出现 java.lang.IllegalStateException
我正在尝试在我的应用程序中使用 SqlDelight 数据库。
在我的 DAO 中,我有一个名为 getRecipeById 的函数来查询数据库并返回域模型(Recipe)流。下面是函数的实现:(注意:RecipeTable 是表的名称,或者我想我应该叫它RecipeEntity)
然后我的存储库像这样调用这个函数:(注意:recipeLocalDatabase 是我的 DAO)
然后我的用例层从存储库调用函数并传递流程:
现在在 ViewModel 中,我正在收集 RecipeDTO 的流程,如下所示:
然后,我的视图层将观察 MutableState 对象。现在,我每隔一段时间就会收到这个错误
我认为是流量收集导致了错误,或者可能是因为我使用的是 MutableState?谷歌搜索错误没有多大帮助......有谁知道这个问题的原因是什么?谢谢!对不起,很长的帖子。
android - 如何使用 Sqldelight 中的复合主键从表中删除行列表?
我想删除给定列表as_counter,t_ms
和值的表中的行as_counter
,t_ms
并存在于列表中。
数据库
我尝试过的方法是在 deleteEventListByKey 中。但是我收到了错误'(', ')', '.', <binary like operator real>, BETWEEN or IN expected, got ','
。我不确定为什么会收到此错误。
我试图通过的测试用例
有谁知道如何为 SQLdelight(SQLLite) 编写查询,在给定列表输入的情况下,如果数据库中存在并且表中的条目将被as_counter
删除t_ms
?
kotlin-multiplatform - 在 KMM (prod) 中使用 SQLDelight 有什么限制
SQLDelight 在这里仍然被标记为 maven 存储库上的实验库,尽管第一个版本似乎在 2018 年 10 月发布。
我在 KMM 中制作了一个示例应用程序,我可以在其中插入/删除行,到目前为止,它似乎对我们的用例运行良好。但是,有人可以帮助我了解它的哪些方面在产品中使用不安全。有任何性能问题吗?还是有可能在产品中随机崩溃?或者,我们是否知道是否有应用程序成功地将 Prod 中的 SqlDelight 用于其 KMM 应用程序?
谢谢!
android - android应用程序在哪里存储照片
我想在我的 android 应用程序中访问相机并选择拍照。存储照片的最佳方式在哪里?
- 在图书馆的设备上?并保存他们的路径
- 在 blob 列的本地数据库中?(SqlDelight)
- 另一种方式?非常感谢。
android - SQLDelight 关系
我想用SQLDelight建模关系,尤其是一对多关系。
我有 2 张桌子:recipe
和ingredient
. 为简单起见,它们看起来像这样:
所以我有一个食谱列表,每个食谱可以包含 0-n 个成分。
我有两个目标:
- 写一个包含所有成分的食谱
- 阅读包含所有成分的食谱
我很确定第一个只能手动完成,例如插入配方然后手动插入相关成分。
对于后者,我尝试使用以下语句加入表:
SQLDelight 为我生成了一个 1:1 的关系文件:
有没有什么好的方法可以用一个生成的函数来检索数据(配方 + 成分列表)?类似于房间 @Embedded
和@Relation
注释的东西。
kotlin - 前端内部错误:无法分析 SQLDelight 表的声明
我试图./gradlew build
在我的 kotlin 多平台项目上运行,但是构建失败并出现此错误。似乎无法生成 SQLDelight Event 数据库。
完整的日志文件可以在 https://gist.github.com/ExtremelySunnyYK/5d237b6e2ef387837cd3dbc40bddf50d查看
在我集成 kmp(kotlin 多平台)项目的 ios 部分之前,kmp 的 android 部分构建良好,并且生成了事件数据库。
但是在我将 ios 部分与id("com.chromaticnoise.multiplatform-swiftpackage") version "2.0.3"
https://johnoreilly.dev/posts/kotlinmultiplatform-swift-package/
集成后
,构建现在失败并出现错误org.jetbrains.kotlin.protobuf.InvalidProtocolBufferException.invalidWireType(InvalidProtocolBufferException.java:99)
这是我的依赖版本
- 摇篮版本:7.1
- Kotlin Gradle 插件:1.5.0
- Android 构建 Gradle:4.2
- SQL喜悦:1.5.0
- Android Studio 4.2 Build #AI-202.7660.26.42.7322048,构建于 2021 年 4 月 29 日,macOS 10.15.7
我曾尝试降级我的 android studio 版本,将 gradle 版本降级到 6.8,但我收到了同样的错误。