用途:prisma db push 用于把 Prisma schema 的变更直接同步到数据库,不创建迁移文件,也不跟踪迁移历史,适合快速迭代。
主要能力:同步 schema 到数据库;数据库不存在时自动创建;不生成迁移文件;不记录迁移历史。
命令:prisma db push [options]
选项:--force-reset 推送前强制重置数据库;--accept-data-loss 忽略数据丢失警告;--schema 指定 Prisma schema 路径;--config 指定 Prisma 配置文件路径;--url 覆盖配置文件中的数据源 URL;--skip-generate 在 v7 中已移除,需显式运行 prisma generate。
示例:prisma db push;prisma db push --accept-data-loss(当变更会删除数据如删除列时必需);prisma db push --force-reset(完全重置数据库并应用 schema)。v7 完整流程:prisma db push 后需显式执行 prisma generate。
适用场景:原型开发、本地开发、MongoDB(不支持迁移,为主要工作流)、测试数据库搭建。
不适用场景:生产环境应使用 migrate deploy;团队协作应使用迁移以跟踪变更;需要回滚时应使用迁移。
与 migrate dev 对比:db push 不创建迁移文件、不跟踪历史、不需要影子数据库、更快、无回滚能力,适合原型;migrate dev 相反,适合开发。
MongoDB 工作流:prisma db push 后执行 prisma generate。
常见模式:修改 schema 后执行 prisma db push,再 prisma generate,测试并重复;重置可用 prisma db push --force-reset 后 prisma db seed。若无法安全应用变更会报错提示数据丢失,确认可接受后加 --accept-data-loss。准备上生产时可先 prisma migrate dev --name init 建立基线迁移,之后用 migrate dev。