我计划从托管在 Heroku 上的 Rails 应用程序中提取一些 API 端点,该应用程序使用 Postgres 到一个新的 Heroku 应用程序中。这样做的明智方法是什么?
- 与第二个应用程序共享数据库并在我的客户端代码中切换 API 端点?
- 使用 PG Backups 将数据备份和迁移到新数据库?
- 其他?
不确定这是否是基于意见的问题,但我很感激一些意见。
我计划从托管在 Heroku 上的 Rails 应用程序中提取一些 API 端点,该应用程序使用 Postgres 到一个新的 Heroku 应用程序中。这样做的明智方法是什么?
不确定这是否是基于意见的问题,但我很感激一些意见。
您列出的两个选项似乎都完全可以接受,但该决定在很大程度上取决于 API 的性质以及您的消费者将使用它做什么。
如果 API 只是提供数据(即只读,没有用于更新/创建新数据的端点),那么我强烈建议创建一个“追随者”postgres 数据库,并让您的 API 请求从追随者那里读取。这两个数据库是同步的,您将 API 流量/负载与常规应用程序流量/负载分开。
Heroku 设置关注者的说明如下:
https ://devcenter.heroku.com/articles/heroku-postgres-follower-databases
如果您的 API 涉及数据更新/写入,那么从同一个数据库克隆数据库(与)服务 API 和应用程序的决定完全取决于流量以及您对管理两个数据库并保持它们同步的容忍度。
附带说明一下,对于您的 API 端点,我总是建议使用 ActiveModelSerializers 或 JBuilder 来传递数据。
https://github.com/rails/jbuilder
https://github.com/rails-api/active_model_serializers