Rails app with test&实时数据访问类似于条带

时间:2014-10-29 04:55:53

标签: ruby-on-rails activerecord ruby-on-rails-4 rails-activerecord

我有一个rails 4应用程序,它向外部用户公开API。用户还可以访问他们可以看到的网络仪表板。管理与API调用相关的数据,类似于条带。条纹仪表板还允许您在live&测试数据。我希望复制类似的行为。是否有任何设计建议或Rails方式如何做到这一点?使用单独的数据库(db_live vs db_test)或在db_live中使用单独的表,然后使用*_test表命名约定来访问实时数据库中的测试数据。

Rails / ActiveRecord是如何做到这一点的?我使用Postgres作为数据库。

2 个答案:

答案 0 :(得分:0)

一个可能的解决方案是简单地将live(或test)布尔列添加到相应的数据库表中,并使用范围应用所需的where条件。该列的索引也有助于提高性能。

此解决方案的实用性取决于测试数据的确切生成方式以及您希望每个用户/帐户有多少测试数据。

答案 1 :(得分:0)

也在寻找相同的答案。到目前为止,我能想到的最佳选择是使用多租户系统。您可以将会话变量设置为test|live,并根据它连接到different databases或者postgres不同schemas。这样,我们所有的代码都将保持干燥状态,测试系统和实时系统之间的所有切换逻辑都可以在一个地方移动。

以下是多租户系统的基本概念:

http://jerodsanto.net/2011/07/building-multi-tenant-rails-apps-with-postgresql-schemas/