0

我在使用SqlDelightintellij 插件时遇到问题。我试图将迁移写在一个地方,而不是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 项目中创建这个设置(它可以是全新的)时,导航失败。

4

0 回答 0