我有一个供多个项目使用的数据库。每个项目都有其数据库迁移。
我曾经尝试过Google并阅读knex文档,但没有运气。我已经看到一些建议来伪造迁移文件来欺骗迁移表,但是我认为这不是一个好的解决方案。
我想将所有迁移数据保存在一个迁移表中。在knex上可以吗?
答案 0 :(得分:0)
每个项目都不能拥有一组不同的迁移文件,并且无法针对同一迁移表分别运行它们。没有一个好的解决方案,而且这样做也毫无意义。
如果迁移彼此不相关,则没有理由将它们放在同一表中。另一方面,如果它们是相关的,则实际上应该将文件托管在同一位置,以确保一切按正确的顺序进行。
您可以将迁移表名称tableName
(http://knexjs.org/#Migrations-API)设置为knex config中的每个项目都不同。
但是,我永远不建议使用相同的数据库进行多个项目,而每个人都对其进行单独的迁移。
只有当您无权为每个项目创建单独的数据库时,这种情况才可以被远程接受。
如果项目共享相同的数据模型(具有共享DB的微服务),在这种情况下,您仍应使用多个数据库或拥有单个服务(这是架构更改的所有者),而其余服务应仅读取/写入数据。