sql >> Database >  >> RDS >> PostgreSQL

Rails, PostgreSQL en geschiedenistriggers

Als u database-specifieke functies nodig heeft of wilt hebben die ActiveRecord niet begrijpt, moet u overschakelen naar db/structure.sql voor het bijhouden van uw schema. db/structure.sql is zo'n beetje een onbewerkte dump van je schema gemaakt met behulp van de native tools van de database, dus het zal triggers, CHECK-beperkingen, indexen op functieresultaten en al het andere bevatten.

Overstappen is eenvoudig:

  1. Update uw config/application.rb om config.active_record.schema_format = :sql te bevatten .
  2. Doe een rake db:structure:dump om een ​​initiële db/structure.sql . te krijgen .
  3. Verwijder db/schema.rb vanuit uw directorystructuur en revisiebeheer.
  4. Voeg db/structure.sql toe naar revisiecontrole.
  5. Pas je rake-gewoonten aan:
    • Gebruik db:structure:dump in plaats van db:schema:dump
    • Gebruik db:structure:load in plaats van db:schema:load

Al het andere zou normaal moeten werken (ervan uitgaande natuurlijk dat je gezond bent en PostgreSQL gebruikt voor ontwikkeling, testen en productie).

Met deze wijziging worden uw triggers bijgehouden in db/structure.sql en het opnieuw aanmaken van de database zal ze niet kwijtraken.



  1. Waarde Fout bij het importeren van gegevens in de postgres-tabel met psycopg2

  2. SQL Server 2016:altijd versleuteld

  3. SQL:vind het maximale record per groep

  4. postgresql-reeks nextval in schema