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
我正在编写一个更改 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