prisma db push
和 和有什么不一样prisma migrate dev
?我什么时候应该使用其中一种而不是另一种。文档说 prisma db Push 仅与模式原型有关,我不明白这是什么意思。
小智 10
它们服务于两种不同的环境。正如文档prisma db push
中所述,不能在您的生产环境中使用
db push
使用与 Prisma Migrate 相同的引擎来同步 Prisma 架构与数据库架构,并且最适合架构原型设计。命令db push
:
内省数据库以推断并执行使数据库架构反映 Prisma 架构状态所需的更改。
默认情况下,将更改应用于数据库模式后,会触发生成器(例如,Prisma 客户端)。您不需要手动调用
prisma generate
.如果
db push
预计更改可能会导致数据丢失,它将:
- 抛出错误
--accept-data-loss
如果您仍想进行更改,则需要该选项注意:
db push
不与迁移交互或依赖迁移。迁移表不会更新,也不会生成迁移文件。
如文档prisma migrate dev
中所述,在您的本地环境中使用
migrate dev
是一个开发命令,切勿在生产环境中使用。这个命令:
- 重播影子数据库中的现有迁移历史记录,以检测架构漂移(编辑或删除的迁移文件,或对数据库架构的手动更改)
- 将待处理的迁移应用到影子数据库(例如,同事创建的新迁移)
- 根据运行前对 Prisma 架构所做的任何更改生成新的迁移
migrate dev
- 将所有未应用的迁移应用到开发数据库并更新
_prisma_migrations
表- 触发工件的生成(例如,Prisma 客户端)
在以下情况下,该
migrate dev
命令会提示您重置数据库:
- 由于修改或丢失迁移而导致的迁移历史记录冲突
- 数据库架构已偏离迁移历史的最终状态
如果您对此有任何其他问题,可以在文档中进行比较,解释何时使用其中一种。
归档时间: |
|
查看次数: |
34848 次 |
最近记录: |