我有一个被多个项目使用的数据库。每个项目都有其数据库迁移。
我尝试用谷歌搜索并阅读 knex 文档,但没有成功。我看到一些建议伪造迁移文件来欺骗迁移表,但我认为这不是一个好的解决方案。
我想将所有迁移数据保存在一个迁移表中。 knex上可以吗?
最佳答案
为每个项目拥有不同的迁移文件集并尝试针对同一迁移表单独运行它们是不可能的。没有好的解决方案,而且无论如何这样做也没有意义。
如果迁移彼此不相关,则没有理由将它们放在同一个表中。另一方面,如果它们相关,那么这些文件确实应该托管在同一位置,以保证一切都按正确的顺序完成。
您可以在 knex 配置中为每个项目设置不同的迁移表名称 tableName
( http://knexjs.org/#Migrations-API )。
但是,我绝不会建议让多个项目使用同一数据库,并且每个人都对其进行单独的迁移。
唯一可以远程接受的原因是您无权为每个项目创建单独的数据库。
如果项目共享相同的数据模型(具有共享数据库的微服务),在这种情况下,您应该仍然使用多个数据库或拥有作为架构更改的所有者的单个服务,而其余服务应该只读取/写入数据。
关于mysql - Knex.js:我可以将多个迁移保存在一张迁移表中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174914/