ALTER TABLE 迁移不会更新生成的代码

Wel*_*sta 4 kotlin sqldelight

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

例子:


// 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;
Run Code Online (Sandbox Code Playgroud)

添加该列后,生成的代码似乎没有更新。例如,该insert函数不会更新以接收表中新添加的列,并且内部生成的 Kotlin 代码不会使用新列进行更新。

有什么办法可以绕过这个问题吗?

小智 7

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