postgresql - 从 DB 中丢失的 TypeORM 迁移条目,`migration:run` 重新运行它们,然后因“关系已存在”而失败
问题描述
我有一个带有 TypeORM dockerized 的 NestJS 应用程序。我已经synchronize
关闭,而是使用迁移。在容器入口点,我做yarn typeorm migration:run
. 它第一次运行良好,并根据日志将记录插入migrations
表中。
我注意到,当我下次启动项目时,它经常尝试重新运行迁移并且由于“关系已经存在”而失败(如预期的那样)。此时,我可以通过 验证表中确实缺少migrations
条目docker-compose exec db psql -U postgres -c 'SELECT * FROM "migrations" "migrations"
。数据库架构是最新的。当我手动插入新记录时,它会在丢失记录后获得一个增量 ID。所以记录在某个时候就在那里。
我无法弄清楚是什么可能导致表中的条目migrations
消失(回滚?)。这发生在上面链接的项目上。这是一个简单的示例项目。我没有意外命名为“迁移”的实体。:)
解决方案
作为一种解决方法migrations
,我目前手动插入表中:
docker-compose exec db psql -U postgres -c "INSERT INTO migrations (timestamp, name) VALUES ('1619623728180', 'AddTable1619623728180');"
推荐阅读
- mysql - 如何在多个记录和多个字段上连接表
- javascript - Instagram 登录字段未在桌面版 Internet Explorer 11 中激活
- c - 在 C 中使用 lseek 系统调用来读取写入文件中的结构
- java - Android studio Java - 地图的底页视图
- android - 如何在订阅之外使用变量
- android - 在 Kotlin 上为 Google Maps Api 创建动态标记并通过变量访问
- php - 订单完成时 WooCommerce 触发功能,但其中调用的 Python 脚本不执行
- lua - Lua如何从远程http请求文件
- kotlin - Kotlin JVM - Char MAX_CODE_POINT - 未解决的参考
- python - 如何在 TensorFlow Eager 模式下使用复杂变量?