删除具有默认值的列时 Prisma db 推送错误

Prisma db push error when removing column that has a default value

从 schema.prisma 中删除一列并 运行 宁 npm prisma db push 后,出现错误...

Error: The object 'users_role_df' is dependent on column 'role'.

我正在使用 Prisma 3.3.0 和 sqlserver 连接。

模型看起来像这样...

model User {
    id ....
    name ...
    role String @default("USER")
}

我看到初始推送创建了 CONSTRAINT users_role_df 但现在当我将其从模型中删除并 运行 推送时,它不会处理先删除约束然后再删除列的问题。

我该如何解决这个问题?

您可以尝试 运行 命令 npx prisma migrate dev --create-only 以查看为迁移生成的 SQL 是什么样子。

您可以在生成的迁移中手动添加 DROP CONSTRAINT users_role_df; 或更改 SQL 命令的顺序(如果生成的迁移中已存在这样的命令)。

只要您在应用迁移到您的数据库之前更改迁移文件,就可以了。