删除具有默认值的列时 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 命令的顺序(如果生成的迁移中已存在这样的命令)。
只要您在应用迁移到您的数据库之前更改迁移文件,就可以了。
从 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 命令的顺序(如果生成的迁移中已存在这样的命令)。
只要您在应用迁移到您的数据库之前更改迁移文件,就可以了。