Sha256: 6805cbc3a0842b9625c55ea1b29e5de2b5c3e18aacec88e145e79ae752cdf8e9

Contents?: true

Size: 1.33 KB

Versions: 4

Compression:

Stored size: 1.33 KB

Contents

# frozen_string_literal: true

module Apartment
  module TaskHelper
    def self.each_tenant(&block)
      Parallel.each(tenants_without_default, in_threads: Apartment.parallel_migration_threads) do |tenant|
        block.call(tenant)
      end
    end

    def self.tenants_without_default
      tenants - [Apartment.default_tenant]
    end

    def self.tenants
      ENV['DB'] ? ENV['DB'].split(',').map(&:strip) : Apartment.tenant_names || []
    end

    def self.warn_if_tenants_empty
      return unless tenants.empty? && ENV['IGNORE_EMPTY_TENANTS'] != 'true'

      puts <<-WARNING
        [WARNING] - The list of tenants to migrate appears to be empty. This could mean a few things:

          1. You may not have created any, in which case you can ignore this message
          2. You've run `apartment:migrate` directly without loading the Rails environment
            * `apartment:migrate` is now deprecated. Tenants will automatically be migrated with `db:migrate`

        Note that your tenants currently haven't been migrated. You'll need to run `db:migrate` to rectify this.
      WARNING
    end

    def self.create_tenant(tenant_name)
      puts("Creating #{tenant_name} tenant")
      Apartment::Tenant.create(tenant_name)
    rescue Apartment::TenantExists => e
      puts "Tried to create already existing tenant: #{e}"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ros-apartment-2.8.1 lib/apartment/tasks/task_helper.rb
ros-apartment-2.8.1.rc2 lib/apartment/tasks/task_helper.rb
ros-apartment-2.8.1.rc1 lib/apartment/tasks/task_helper.rb
ros-apartment-2.8.0 lib/apartment/tasks/task_helper.rb