2

我正在编写一个更改表的迁移文件,添加一个新列,但生成的代码没有更新,所以我无法将新记录插入到新列的值中。

例子:


// 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 代码不会更新为新列。

有没有办法绕过这个问题?

4

2 回答 2

4

始终是架构的CREATE TABLE新版本,因此您还需要在 中添加列CREATE TABLE。如果您想让迁移文件成为事实来源,您需要deriveSchemaFromMigrations按照此处所述启用:https ://cashapp.github.io/sqldelight/jvm_mysql/#migration-schema

于 2020-08-04T16:14:32.710 回答
0

抱歉不能评论,不是用“VALUES”代替“VALUE”吗?

于 2020-08-04T15:55:09.010 回答