我试图在SQLDelight中的表中添加更多的列。我制作了一个迁移文件1平方米。在迁移文件中,它会产生没有找到表的错误。

我的build.gradle.kts:
sqldelight {
database("AppDatabase") {
packageName = "com.jetbrains.handson.kmm.shared.cache"
schemaOutputDirectory = file("shared/src/commonMain/sqldelight/com/jetbrains/handson/kmm/shared/cache/AppDatabase.sq")
migrationOutputDirectory = file("shared/src/commonMain/sqldelight/migrations/1.sqm")
migrationOutputFileFormat = ".sqm"
schemaOutputDirectory
deriveSchemaFromMigrations = true
}
}创建table语句:
CREATE TABLE pos_orders(id INTEGER AS Int PRIMARY KEY, orderId INTEGER AS Int , dateandtime TEXT, restaurant_id INTEGER AS Int, restaurant_name TEXT, deliveryType_description TEXT, paymentType_description TEXT, totalAmount REAL AS Float,
process_order INTEGER AS Int, pos_accept INTEGER AS Int, pos_printed INTEGER AS Int, status INTEGER AS Int, prep_time INTEGER AS Int, desired_delivery_time TEXT, restaurant_address TEXT, customerNo TEXT, title TEXT, firstName TEXT, lastName TEXT,company TEXT, street TEXT, houseNo TEXT, zip TEXT, city TEXT, state TEXT,floor TEXT, bezirk TEXT, bellname TEXT, email TEXT, phoneNo TEXT, fax TEXT, taxAmount REAL AS Float, total REAL AS Float , deliverycharges REAL AS Float,
deliveryType INTEGER AS Int, paymentType INTEGER AS Int, comment TEXT, order_note TEXT, sender TEXT, cancelation_cause TEXT, demo_order INTEGER AS Int, orderDate TEXT, updated TEXT);发布于 2022-01-28 21:27:41
sqldelight {
database("AppDatabase") {
packageName = "com.jetbrains.handson.kmm.shared.cache"
schemaOutputDirectory = file("com.jetbrains.handson.kmm.shared.cache")
migrationOutputDirectory = file("com.jetbrains.handson.kmm.shared.cache")
deriveSchemaFromMigrations = true
verifyMigrations = true
}
}将gradle.build更改为上面的一个,然后在路径中与我用两个文件夹编写的sqlchee完全相同
shared/src/commonMain/sqldelight/com/jetbrains/handson/kmm/shared/cache/sqldelight
在folder文件夹中,将所有数据库文件AppDatabase.sq、1.sqm、2.sqm .等等
诀窍在这里,在AppDatabase.sq 中只放置db查询.
AppDatabase看起来应该像
getAll:
SELECT * FROM pos_orders;
deleteAll:
DELETE FROM pos_orders;然后再创建一个1平方米来放置原始表,并创建2平方米来放置您的迁移。
1.平方米应该看起来像
CREATE TABLE pos_orders(id INTEGER AS Int PRIMARY KEY, orderId INTEGER AS Int , dateandtime TEXT, restaurant_id INTEGER AS Int, restaurant_name TEXT, deliveryType_description TEXT, paymentType_description TEXT, totalAmount REAL AS Float,
process_order INTEGER AS Int, pos_accept INTEGER AS Int, pos_printed INTEGER AS Int, status INTEGER AS Int, prep_time INTEGER AS Int, desired_delivery_time TEXT, restaurant_address TEXT, customerNo TEXT, title TEXT, firstName TEXT, lastName TEXT,company TEXT, street TEXT, houseNo TEXT, zip TEXT, city TEXT, state TEXT,floor TEXT, bezirk TEXT, bellname TEXT, email TEXT, phoneNo TEXT, fax TEXT, taxAmount REAL AS Float, total REAL AS Float , deliverycharges REAL AS Float,
deliveryType INTEGER AS Int, paymentType INTEGER AS Int, comment TEXT, order_note TEXT, sender TEXT, cancelation_cause TEXT, demo_order INTEGER AS Int, orderDate TEXT, updated TEXT);2.平方米应该看起来像
ALTER TABLE pos_orders ADD COLUMN year INTEGER ;https://stackoverflow.com/questions/66968873
复制相似问题