问题标签 [apartment-gem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1429 浏览

mysql - Rails - Apartment gem - 公共和租户数据库的不同架构

我知道默认情况下,Apartment 将在公共数据库和租户数据库上创建相同的表。而且公共数据库上的大多数表都没有用,空表。我也知道租户数据库依赖于 schema.rb

但我想知道我们是否可以为公共数据库和租户数据库提供不同的架构?例如,我有 5 个表:SignUp、Company、User、Task 和 Matter。

如果我希望主数据库(公共)只有 SignUP、COmpany 和 User 表,而租户只有 Task 和 Matter 表,是否可以这样做?

0 投票
0 回答
158 浏览

ruby-on-rails - 托管客户网站的公寓(红宝石)?

TL;博士:

  • 资源、部分、布局、gem 配置、应用程序之间共享的其他代码
  • 每个应用程序的不同数据库
  • 能够一次更新所有应用程序的代码库,而不影响客户站点上的自定义代码

  • 公寓?轨道引擎?CDN?

我想在我的所有客户网站上提供某些元素(管理导航栏和侧边栏、设计配置(除了:host)以及其他位)。这很好,但我也希望能够一次更新我的代码库,并将其推送(最好使用 git)到我所有客户的站点,以确保他们拥有我编写的最新代码。

我一直在考虑为基本功能创建引擎并为资产创建 CDN,但我仍然必须手动对每个客户的项目进行任何界面更改(例如在管理导航栏中添加链接)。

公寓能否解决这个问题,并且仍然允许每个客户拥有自己独特的代码库/git repo用于他们自己的网站?

我知道我在准确描述我的问题方面做得不够好,所以如果您希望我澄清任何事情,请询问。

任何阅读材料将不胜感激。

编辑:我应该补充一下,我目前正在 AWS 集群上使用 Deis 进行生产。

0 投票
2 回答
1579 浏览

ruby-on-rails - 迁移无法识别在 schema_search_path 上创建的 hstore 扩展

我正在尝试使用 postgresql HStore 添加一列。

因为我正在运行一个多租户应用程序(使用公寓 gem),所以我在一个名为“shared_extensions”的专用模式上创建了 hstore 扩展,如下所示:[ https://github.com/influitive/apartment#installing -extensions-into-persistent-schemas][1]

我还将 shared_extensions 模式添加到 database.yml 为:

但是,当我尝试运行 rake db:migrate 以添加 hstore 列时,我仍然收到错误消息:

这是 hstore 迁移代码:

我不确定,但看起来迁移无法识别 database.yml 文件上的 schema_search_path。

0 投票
1 回答
1743 浏览

ruby-on-rails - 基于登录用户的公寓切换租户

我正在尝试基于每个请求的用户登录来为公寓实施自定义电梯。

基本上我想要实现的是:

  • 每次有请求进来,切换到正确的租户
  • 如果没有登录用户,则选择默认租户

但是,我的问题是我不如何从通用电梯提供的请求( Rack::Request )对象中检索当前用户。关于如何做到这一点的任何提示或有任何其他方法可以在没有请求的情况下获取当前用户?

我正在使用设计进行身份验证。

0 投票
0 回答
535 浏览

ruby-on-rails - 如何在 Heroku staging 上测试多租户应用程序?

我目前正在使用 Rails、Heroku 和 Apartment gem 创建一个多租户应用程序。(请注意,我知道将 Heroku 上的多租户应用程序结构用于 10 多个不同的数据库的限制)。我正确设置了我的应用程序并使用 lvh.me 让子域在本地正常工作。

由于推送到 XXX-staging.herokuapp.com,XXX-staging 已经是一个子域,所以它抛出了错误:

有没有办法在 Heroku 登台环境中测试子域,或者是购买带有另一个 SSL 通配符的替代 URL 的唯一方法?如果这不是我必须做的,我宁愿这样做,因为它可能很昂贵。

0 投票
1 回答
314 浏览

ruby-on-rails - 子域不适用于 rails 应用程序的 heroku 和 namecheap

我目前正在使用 Rails 构建一个 SaaS 应用程序,我希望公司的每个分支机构都有自己的子域。我使用公寓 gem 来实现这一点,它在本地工作得很好,但它在生产中是一场噩梦。我似乎无法让任何子域在 Heroku 中工作。

Namecheap 是域名的注册商。该域已成功重定向到 herokuapp,但子域似乎无法解析,这与它在本地工作的方式不同。

任何帮助表示赞赏

0 投票
0 回答
97 浏览

ruby-on-rails - Rails 在多租户应用程序上整理来自多个模式的数据

在我着手对我的应用程序进行重大结构更改之前,我想了解更多关于在 Rails 中使用 Postgres 模式实现的多租户应用程序的基础知识。

更客观地说:我想知道如何跨模式查询。

假设我有两个模式,针对两个不同的客户,都包含“销售”模型,我需要获取平均销售额。这是如何运作的?

我读了这篇文章,但老实说,这对我来说有点像火箭科学。

我在想必须有一种简单的方法来拥有像“管理员”租户这样能够以简单透明的方式汇总所有租户的信息......我错了吗?

0 投票
2 回答
353 浏览

ruby-on-rails - 在 Amazon AWS 上使用 Apartment gem 的 Rails 多租户

我以前在 Heroku 上使用过公寓,但现在对于一个客户,我正在评估它是否可以在 AWS 上使用。是否有说明如何在 Amazon AWS 上使用公寓 gem 的教程?

阅读https://aws.amazon.com/running_databases/后,我不确定如何设置我的数据库。我应该在我的实例上安装 postgres 还是应该使用 RDS?如果我使用 Postgres,RDS 是否允许创建多个模式。

谢谢。

0 投票
2 回答
1020 浏览

ruby-on-rails - 如何使用公寓 gem 处理电子邮件中的网址

我正在使用apartmentgem 进行多租户。

除了我电子邮件中的网址外,一切都很好。因此,对于从任何请求和后台作业发送的每封电子邮件,都使用default_url_options主机。

关于如何处理电子邮件中的主机切换有什么建议吗?

0 投票
1 回答
668 浏览

ruby-on-rails - 初始化器 Rails 4 中的 Request.host

我正在将 Apartment gem 用于多租户应用程序,并且正在使用“host_hash 电梯”根据请求的子域和主机切换租户。

这是通过以下代码(来自他们的文档)完成的:

在它显示“example.com”=>“example_tenant”的地方,我需要发送一个带有 request.host 的哈希,以在我的 Company 模型中找到 request_host 数据库字段的值与 request.host 匹配的公司。如果这有意义吗?

如果我在示例中硬编码,就像下面的代码一样,我可以让它工作,但我不知道如何根据请求动态地做到这一点:

上面的代码有效,因为这是我当前所在的域,它与我设置的字段和公寓租户匹配。

但是,由于这是在初始化程序中放置“request.host”时出现的错误:未定义的局部变量/方法“请求”

如果我使用 'Rack::Request.new(env).host' 我会得到未定义的局部变量/方法 'env'

如何在初始化程序中获取 request.host 来解决这个问题?