sql >> Database >  >> RDS >> PostgreSQL

Rails-migraties voor postgreSQL-schema's

Ik heb een schema_utils-bibliotheek die ik gebruik en die de volgende methode heeft voor het afhandelen van migraties:

  def self.with_schema(schema_name, &block)
    conn = ActiveRecord::Base.connection
    old_schema_search_path = conn.schema_search_path
    conn.schema_search_path = schema_name
    begin
      yield
    ensure
      conn.schema_search_path = old_schema_search_path
    end
  end

Ik gebruik vervolgens migraties zoals normaal, zodat ik rake:migrateNow kan blijven aanroepen, in uw migraties kunt u het volgende gebruiken:

...
schemas.each do |schema|
  SchemaUtils.with_schema(schema) do
    #Put migration code here
    #e.g. add_column :xyz, ...
  end
end

Omdat ik de neiging heb schema's toe te wijzen aan accountcodes, doe ik het volgende:

Account.for_each do |account|
  SchemaUtils.with_schema(account.code) do
    #Put migration code here
  end
end


  1. Gebruikers alleen toegang geven tot bepaalde tabellen in mijn inhoudsprovider

  2. Vind de kolommen die worden geretourneerd door een functie met tabelwaarde (T-SQL-voorbeelden)

  3. MYSQL:selecteer een deel van de tekst en knip het uit op basis van puntlocatie

  4. Samenvoegen van het resultaat van twee queries mysql