我正在与其他开发人员一起开发多租户Ruby on Rails应用程序。我拉了他的分支并收到了新的迁移文件。我跑了rake db:migrate。我访问该控制器的索引,我得到未定义的错误。
经过一些研究后,我了解到在创建租户后我运行了迁移。 (参考:PG::UndefinedTable: ERROR: relation "..." does not exist)我也理解rake db:reset在开发中解决了这个问题。但是进行重置会清除我在开发中可以使用的数据。
我担心的是,这在生产中如何运作?当我发布到生产时...这是否意味着对于现有租户我无法运行迁移并发布新功能?
对此有永久的解决方案吗?
答案 0 :(得分:2)
如果在配置文件中设置以下行,
config.tenant_names = lambda{ Customer.pluck(:tenant_name) }
当您运行rake db:migrate
时,将迁移所有现有租户的架构。