我在
this article之后开发一个多租户应用程序.问题是我第一次运行所有迁移时.在schema.rb文件中只是公共模式的表,但是其他模式发生了什么?并且如何创建具有不同结构的其他模式给公众,我不想使用宝石.
见下面的例子
要为公共模式创建的表
class CreatePerspectives < ActiveRecord::Migration include MultiSchema def up with_in_schemas :only => :public do # Create table perspectives end end def down with_in_schemas :only => :public do drop_table :prespectives end end end
要为私有模式创建的表
class CreateObjectives < ActiveRecord::Migration include MultiSchema def change with_in_schemas :except => :public do # Create objectives table end end end
schema.rb
ActiveRecord::Schema.define(version: 20130810172443) do create_table "perspectives",force: true do |t| t.string "name" t.datetime "created_at" t.datetime "updated_at" end end
解决方法
你知道公寓宝石吗?
https://github.com/influitive/apartment
我在今年的一个项目中使用了一个支持多模式的postgresql.一切都记录在案,易于使用.您可以选择中间件模式.例如,当您访问域customer.applicationdomain.com时,应用程序可以为您选择正确的模式.顺便说一句,你可以使用sidekiq的后台工作.