PG::UndefinedTable: ERROR: relation does not exist for Multitenant Rails App

PG::UndefinedTable: ERROR: relation does not exist for Multitenant Rails App

我正在与另一位开发人员一起在 Rails 应用程序上开发多租户 Ruby。我拉了他的 b运行ch 并收到了新的迁移文件。我运行耙db:migrate。我访问了那个控制器的索引,我得到了未定义的错误。

经过一些研究,我了解到我 运行 在创建租户后进行迁移。 (参考:)而且我也了解到 rake db:reset 在开发中解决了这个问题。但是重置会清除我的数据,这在开发中我很好。

我担心的是,这在生产中如何运作?当我发布到生产环境时...这是否意味着对于现有租户我不能 运行 迁移和发布新功能?

是否有永久解决方案?

如果您在配置文件中设置以下行,

config.tenant_names = lambda{ Customer.pluck(:tenant_name) }

当您 运行 rake db:migrate 时,将迁移所有现有租户的架构。