Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[Feature Request] Migration Diff Validation Against schema.zmodel for CI Pipeline

未关闭
#2,729 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
冷清
技术栈
typescript
领域
ci-cd, databases

调研方向

The request is a zen migrate diff command that fails CI when prisma/migrations no longer matches the schema generated from schema.zmodel. Start by finding how the existing zen generate, zen db push and zen migrate deploy commands are wired in the CLI, and how zmodel is turned into prisma/schema.prisma. The suggested route shells out to prisma migrate diff --exit-code --from-migrations ... --to-schema-datamodel ... with a shadow DB URL. Done means CI exits non-zero when a migration is missing.

由索引模型根据 Issue 内容生成。

描述

Is your feature request related to a problem? Please describe.
Here's what often happens:

  • I changed schema.zmodel
  • I ran zen generate
  • I ran zen db push for dev environment DB
  • No TypeScript errors
  • I pushed to production.
  • CI checked migration status is OK.

Later, users encounter errors, because I forgot to create the migration for the production DB.

The problem is that the developers are often forget to create the migration, so zen migrate deploy in CI would result in No pending migrations to apply.. Forgetting to create the migration is what I want to prevent, since in dev/local we could just do zen db push.

Describe the solution you'd like
A simple command for CI process to check the migrations consistency with the schema, like:

zen migrate diff

Describe alternatives you've considered
Hacky solution (not tested yet), idea from AI and others:

  • Generate the prisma schema version from zmodel.
  • Check the schema consistency by running prisma migrate diff --exit-code --from-migrations prisma/migrations --to-schema-datamodel prisma/schema.prisma --shadow-database-url "$SHADOW_DATABASE_URL"

Additional context
Relevant posts:

主要语言
TypeScript
星标
2.9k
派生
157
平均合并
11 小时 42 分钟
30 天内合并 PR
20

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

zenstackhq/zenstack 的其他 Issue

查看 zenstackhq/zenstack 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。