Arkitektur för flera hyresgäster med PostgreSQL-scheman

I multi-tenant-arkitektur genom att använda en enda instans tjänar den flera konton. Varje konto kallas hyresgäst. Det finns så många olika tillvägagångssätt för att implementera arkitektur med flera hyresrätter med traditionella eller genom att använda alla ädelstenar. Genom att jämföra alla dessa hittade jag det enklaste sättet att implementera Multi-tenancy, det är med "Aktera som hyresgäst" pärla representation av Gem
pärla "fungerar_som_hyresgäst"
Efter att ha placerat detta i din gem-fil, kör paketet för att installera detta. Användande: It sets the current tenant by  using subdomain and adds the ability to scope models to a tenant. For setting current tenant place the below code in your application controller Creating Tenant Account Model
class AddcolumnsToAccounts < ActiveRecord::Migration def up add_column :accounts, :sub_domain, :string end end
set_current_tenant_by_subdomain(:account, :subdomain) Manuell metod för att ställa in aktuell hyresgäst
class ApplicationController < ActionController::Bas set_current_tenant_through_filter before_filter :find_the_current_tenant def find_the_current_tenant current_account = Account.find_by_subdomain(subdomain: 'subdomain') set_current_tenant(current_account) end
Avgränsa dina modeller
class AddAccountToColleges < ActiveRecord::Migration
def up
add_column :colleges, :account_id, :integer
add_index  :colleges, :account_id
end
end

class College < ActiveRecord::Base
acts_as_tenant(:account)
end
Acts as tenant adds a method to validate uniqueness,  validates_uniqueness_to_tenant If you need to validate for uniqueness, you can do by using following code:
validates_uniqueness_to_tenant :title
Och fler över standardskenor validates_uniqueness_of är också tillgängliga. Använd följande syntax för att ange främmande nyckel
acts_as_tenant(:account, :foreign_key => 'Konto-ID')
som standard tar den account_id Konfiguration En initialiserare kan skapas för att styra alternativ i ActsAsTenant. Du kan ändra konfigurationsalternativen i config/initializers/acts_as_tenant.rb
ActsAsTenant.configure gör |config| config.require_tenant = falskt slut
config.require_tenant när den är inställd på true kommer att uppstå ett ActsAsTenant::NoTenant-fel när en fråga görs utan en klientuppsättning.
Källa: https://github.com/ErwinM/acts_as_tenant
 

Prenumerera för de senaste uppdateringarna

relaterade inlägg

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESwedish