docker 如何防止在TypeORM中数据库没有变化时退出代码1

zazmityj  于 2023-04-05  发布在  Docker
关注(0)|答案(1)|浏览(146)

我设置了迁移。我使用的是PostgreSQL。如果实体中有更改,一切正常。但是当没有更改时,我的实体TypeORM存在,代码为1,错误消息为“未发现数据库模式中的更改”。因此,我的docker容器终止了自己的。我不想这样。如果没有更改,请跳过此操作,不要退出代码1。我该怎么做?
我尝试使用typeorm migration create创建空的迁移文件,但它不起作用。

myzjeezk

myzjeezk1#

我现在也在经历这种情况。在我的情况下,我有点盲目地松散地跟随我组织中的其他项目正在做的事情..他们似乎都有一个自动迁移(脚本生成和迁移运行)阶段到容器创建和部署..
因此,现在我不得不退一步,质疑当我们部署新的代码更改时,是否应该始终运行自动迁移步骤..或者它们是否应该只是一个手动过程 (这似乎很粗略..容易出错)。
因为TypeORM CLI的这个特殊功能在每次不需要做任何更改的时候都会在容器创建阶段失败。
浏览TypeORM源代码,我发现了一组可以传递给迁移生成命令的选项/标志..特别是一个
*“ch”**选项..或者命令行上可能的--ch..这个标志显然 * 应该 * 允许0-exit,并带有一条简单的消息“db schema中没有更改存在。没有生成迁移”..然而我还没有'由于TypeORM设置CLI的方式本身就很复杂,我还没有弄清楚把它放在哪里。

更新:所以我得到了--ch标志工作,但在一个有点喜剧,这个标志将失败与exit-status 1任何时候你确实有您的数据库和源之间的变化,需要同步..所以..这不是一个可行的选择。显然typeorm必须有一个强烈的意见,当迁移生成应该完成,他们不提供一种方法来自动做到这一点,而不是失败时没有变化需要同步或相反失败时**确实存在需要同步..

所以我将尝试以某种方式将该过程移出构建流。

相关问题