我正在用KMM做实验,但是我对SQLDelight有一个问题。下面是AppDatabase.sq文件的代码示例。
CREATE TABLE Data (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
content TEXT NOT NULL
);
-- ====>> Add this new table <<==== (QUESTION 1)
CREATE TABLE Settings (
version TEXT NOT NULL
);
insertItem:
INSERT INTO Data(id, content) VALUES(?,?);
removeAll:
DELETE FROM Data;
selectById:
SELECT * FROM Data WHERE id = ?;
updateById:
UPDATE Data SET content = ? WHERE id = ?;
-- ====>> I want this to be run on DB creation <<==== (QUESTION 2)
INSERT INTO Settings(version) VALUES ('1.0.0');
getVersion:
SELECT version FROM Settings;当我运行应用程序时,我接收到:android.database.sqlite.SQLiteException: no such table: Settings (code 1 SQLITE_ERROR): , while compiling: SELECT version FROM Settings。
如果我使用应用程序检查 of Android 打开应用程序创建的数据库,似乎只有Data表和其他与我的表无关的自动生成表。
我的两个问题(请参阅SQL代码中的注释以获得编号参考)是:
Settings文件创建此表( .sq )?如果您需要,整个项目是这里,但是在以前的版本中,因为我想实现的更改不起作用!
发布于 2022-11-14 21:43:34
我已经克隆了您的Github项目,添加了您在这里提供的代码,它运行得很好。两个表都被创建,Settings表有"1.0.0“版本行。
您是否已在电话上卸载应用程序并再次安装?您可能还在使用旧版本的数据库,因为您还没有为SQLDelight提供任何迁移。

https://stackoverflow.com/questions/74436136
复制相似问题