You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: 20200602233844_create_shared_extensions_schema.rb
    path of file: ./repos/consuldemocracy/db/migrate
    
    the code of the file until where you have to start completion: class CreateSharedExtensionsSchema < ActiveRecord::Migration[6.0]
  def up
    unless schema_exists?(extensions_schema)
      execute_or_log_create_schema_warning("CREATE SCHEMA #{extensions_schema}")
    end

    %w[unaccent pg_trgm].each do |extension|
      if extension_enabled?(extension)
        unless extension_already_in_extensions_schema?(extension)
          execute_or_log_extension_warning("ALTER EXTENSION #{extension} SET SCHEMA #{extensions_schema}")
        end
      else
        execute_or_log_extension_warning("CREATE EXTENSION #{extension} SCHEMA #{extensions_schema}")
      end
    end

    unless schema_exists?(extensions_schema) && public_has_usage_privilege_on_extensions_schema?
      execute_or_log_grant_usage_warn
    
    def show_full_warning_message
      message = <<~WARNING
        ---------------------- Multitenancy Warning ----------------------
          Multitenancy is a feature that allows managing multiple
          institutions in a completely independent way using just one
          CONSUL DEMOCRACY installation.

          NOTE: If you aren't going to use multitenancy, you can safely
          ignore this warning.

          If you'd like to enable this feature, first run:
            #{warning_messages.join(";\n    ")};
          using a user with enough database privileges.

          Check the CONSUL DEMOCRACY release notes for more information.
        ------------------------------------------------------------------
      WARNING

      puts message
      Rails.logger.warn(message)
    end