1

我们正在使用 Node 开发我们网站的新版本,但我们需要继续按原样使用旧的 mysql 数据库,还需要通过新数据库中的新表向某些模型添加新字段,并添加缓存层。最好的方法是什么?我们正在考虑使用 Jugglingdb 并编写我们自己的适配器。它需要做几件事:

  1. 从我们的数据库群中的多个服务器中循环选择。
  2. 缓存到 Redis 用于只读连接
  3. 知道哪些字段在旧数据库中,哪些在新数据库中。
  4. 连接到数据库以进行 CRUD 连接。

这在理论上使用 jugglingdb 适配器是可行的吗?或者是否有人使用另一种更好的技术和/或完全不同的 ORM 包有其他建议?

有一个适配器,jugglingdb-redis-hq,它有一个几乎是我们想要的“后院”功能,除了它似乎基本上是为了一种向后缓存,即在 redis 中制作过期数据的持久副本到数据库。除非我们正在更改或插入某些内容,否则我们不想接触数据库的读/写。

4

1 回答 1

0

令人惊讶的是,自从我发布这个问题以来已经 3 年了。我们最终做了什么,我们终于几乎接受了这个,是这个堆栈:

  • nodejs(当然)
  • hapijs 用于后端框架
  • Sequelize ORM 与 mysql 对话(Sequelize 有内置的连接池!)
  • 用于缓存的 Redis
  • graphql api 使用 graphql-sequelize 模块
  • 在hapi应用层下写了一个服务层来查询graphql api

至关重要的是,Sequelize 无法轻松连接到 2 个不同的数据库,因此我们决定只向旧模式添加新表,而不对旧表进行任何更改。ALTER TABLE从那以后,当我们真的不得不做的时候,我们最终制作了几个小调。我仍然很好奇我们是否可以以另一种方式完成这部分,如果另一个 ORM 可以让我们更轻松地将 2 个数据库融合到引擎盖下。

于 2018-07-31T15:29:18.207 回答