从数据库中删除所有表后,如何将 prisma 重新部署到数据库

Posted

技术标签:

【中文标题】从数据库中删除所有表后,如何将 prisma 重新部署到数据库【英文标题】:How do you make prisma redeploy to a database after you've removed all the tables from the database 【发布时间】:2019-12-15 14:20:57 【问题描述】:

我使用 prisma 为数据库生成架构,但由于更改 id 列开始出现错误。我删除了表并打算重新部署架构,但我找不到这样做的方法。

我已经尝试过执行 prisma deploy 之类的操作,但它告诉我我已经同步了,这是不正确的。我需要它重新部署,就好像架构是新的一样,它似乎不想这样做。

【问题讨论】:

【参考方案1】:

TL;DR:先试试prisma delete,然后再试试prisma deploy

Prisma 为 management 创建一个数据库,它将保存所有与迁移相关的数据。即使您手动删除了表,您也没有更改有关您的服务的迁移数据。因此,Prisma 认为一切都是最新的。

您应该使用prisma delete 让 Prisma 彻底删除您的表,而不是手动删除表。然后,您可以重新运行prisma deploy 以再次重建表。

【讨论】:

prisma delete 只删除 prisma 服务而不是数据库【参考方案2】:

试一试:“prisma deploy --force”

根据文档,您必须接受由 --force 更改架构导致的数据丢失。但是在你的情况下,表格已经被删除了,所以我认为可以尝试一下。

Prisma doc

【讨论】:

以上是关于从数据库中删除所有表后,如何将 prisma 重新部署到数据库的主要内容,如果未能解决你的问题,请参考以下文章

SQLServer如何将一个表内的所有数据导入另一个表后,删除表内的所有数据

django:删除表后怎么重新数据迁移生成表

django manage.py model 删除表后怎么重新生成数据库表

django 删除数据库表后重新同步的方法

连接多个表后如何从sql查询结果中删除重复记录

如何正确删除和重新添加实体数据模型