【问题标题】:Knex.js: Can I have multiple migrations to save in only one migration table?Knex.js:我可以将多个迁移保存在一个迁移表中吗?
【发布时间】:2019-12-02 03:14:29
【问题描述】:

我有一个供多个项目使用的数据库。每个项目都有其数据库迁移。

我曾尝试用谷歌搜索并阅读 knex 文档,但没有运气。我看到了一些伪造迁移文件以欺骗迁移表的建议,但我认为这不是一个好的解决方案。

我想将所有迁移数据保存在一个迁移表中。 knex上可以吗?

【问题讨论】:

    标签: mysql node.js knex.js


    【解决方案1】:

    为每个项目拥有不同的迁移文件集并尝试针对同一个迁移表分别运行它们是不可能的。没有好的解决方案,无论如何做它是没有意义的。

    如果迁移彼此不相关,则没有理由将它们放在同一个表中。另一方面,如果它们是相关的,那么这些文件确实应该托管在同一个地方,以保证一切都按正确的顺序完成。

    您可以将迁移表名称 tableName (http://knexjs.org/#Migrations-API) 设置为在 knex 配置中的每个项目都不同。

    但是,我绝不建议让多个项目使用同一个数据库,并且每个人都为它单独迁移。

    唯一可以远程接受的原因是您无权为每个项目创建单独的数据库。

    如果项目共享相同的数据模型(具有共享数据库的微服务),在这种情况下,您仍应使用多个数据库或拥有单一服务,该服务是架构更改的所有者,其余服务应仅读取/写入数据。

    【讨论】:

      猜你喜欢
      • 2012-04-12
      • 2016-02-03
      • 2014-09-17
      • 1970-01-01
      • 2012-12-20
      • 2015-07-28
      • 1970-01-01
      • 2019-05-08
      • 2023-03-20
      相关资源
      最近更新 更多