我正在编写一个用于更改表的迁移文件,添加了新列,但是生成的代码未更新,因此无法将新记录插入到表中,但新列中的值仍然存在。
示例:
// BankAccount.sq file
CREATE TABLE bank_account (
id INTEGER PRIMARY KEY,
bank_code TEXT NOT NULL,
account_number INTEGER NOT NULL,
account_digit INTEGER NOT NULL
);
selectALL:
SELECT * FROM bank_account;
insert:
INSERT INTO bank_account VALUES (?,?,?,?);
// 1.sqm file
ALTER TABLE bank_account ADD COLUMN bank_name TEXT;
添加该列后,似乎未更新生成的代码。例如,insert
函数不会更新为将新添加的列接收到表中,并且内部生成的Kotlin代码不会使用新列进行更新。
有什么办法可以绕过这个问题?
答案 0 :(得分:1)
CREATE TABLE
始终是架构的全新版本,因此您还需要在CREATE TABLE
中添加该列。如果要将迁移文件作为事实的来源,则需要启用deriveSchemaFromMigrations
,如下所示:https://cashapp.github.io/sqldelight/jvm_mysql/#migration-schema
答案 1 :(得分:0)
抱歉无法发表评论,不是“ VALUES”而不是“ VALUE”吗?