我在使用SqlDelight
intellij 插件时遇到问题。我试图将迁移写在一个地方,而不是CREATE
在.sq
文件中使用语句。
这是我的设置:
src/main/sqldelight
:
├── com
│ └── wtf
│ └── errorrepro
│ └── database
│ └── one.sq
├── migration
│ └── v1.sqm
└── schema
v1.sqm
CREATE TABLE something(
id INTEGER
);
one.sq
这是我在编辑器中遇到的问题。此处没有与代码表相关的代码提示generate
,此文件中的菜单也是空白的。
what:
SELECT * FROM something;
^^^^^^^^^
No table found with name something
build.gradle
我在这里只显示相关sqldelight
配置,我使用的是版本1.5.3
(gradle 插件、intellij 插件和依赖项都在同一个版本上)。
...
sqldelight {
MyDatabase {
packageName = "com.wtf.errorrepro.database"
deriveSchemaFromMigrations = true
verifyMigrations = true
}
}
...
如果我运行任何gradle
命令,例如generateDebugMyDatabaseInterface
,就会生成正确的命令queries
。所以我不明白为什么编辑器会显示“没有找到名称的表”错误。
我已经重新安装了插件,更新了 gradle,做了一个干净的重建,无效的源......似乎没有什么可以解决这个问题。
编辑:
更奇怪的是,如果我创建一个完全独立的项目Kotlin
+Groovy Gradle
并在SqlDelight
那里设置,那么代码导航效果很好。只有当我在一个 Android 项目中创建这个设置(它可以是全新的)时,导航失败。