我目前正在应用程序中实现多租户逻辑,虽然这很简单,但现在我已经厌倦了所有变量的长期存储。变量派生自Heroku database_url
。
def env_variables
{
host: ENV.fetch("#{@company_id}_DB_HOST"),
port: ENV["#{@company_id}_DB_PORT"],
username: ENV.fetch("#{@company_id}_DB_USERNAME"),
password: ENV.fetch("#{@company_id}_DB_PASSWORD"),
database: ENV.fetch("#{@company_id}_DB_DATABASE"),
}
end
从ENV获取相关变量相当简单,但管理40-50个env变量可能会很痛苦。
我看到的选项
我错过了一些很棒的解决方案吗?人们通常如何存储更多的数据库变量?
答案 0 :(得分:0)
<强> ENV 强>
虽然我确信你可以将数据存储在一个文件中,但我个人会将它们保存在ENV vars中(可能是Figaro)
原因是ENV变量更深地存储在堆栈中(在OS中),因此实际上并不由Rails本身保存。如果公司ID不会改变(它们不是动态的),我只需将它们放入Figaro application.yml
文件中:
#config/application.yml
156_DB_DATABASE: "db"
etc