ALTER TABLE migrations 不更新生成的代码

ALTER TABLE migrations does not update the generated code

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

示例:


// 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 函数未更新以接收新添加到 table 的列,并且内部生成的 Kotlin 代码未使用新列进行更新。

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

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