PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Rails, PostgreSQL und History-Trigger

Wenn Sie datenbankspezifische Funktionen benötigen oder wollen, die ActiveRecord nicht versteht, sollten Sie zu db/structure.sql wechseln um Ihr Schema zu verfolgen. db/structure.sql ist so ziemlich ein Rohabbild Ihres Schemas, das mit den nativen Tools der Datenbank erstellt wurde, sodass es Trigger, CHECK-Einschränkungen, Indizes für Funktionsergebnisse und alles andere enthält.

Der Wechsel ist einfach:

  1. Aktualisieren Sie Ihre config/application.rb config.active_record.schema_format = :sql enthalten .
  2. Führe einen rake db:structure:dump durch um eine anfängliche db/structure.sql zu erhalten .
  3. Löschen Sie db/schema.rb aus Ihrem Verzeichnisbaum und der Revisionskontrolle.
  4. Fügen Sie db/structure.sql hinzu zur Revisionskontrolle.
  5. Passen Sie Ihre Rake-Gewohnheiten an:
    • Verwenden Sie db:structure:dump statt db:schema:dump
    • Verwenden Sie db:structure:load statt db:schema:load

Alles andere sollte wie gewohnt funktionieren (vorausgesetzt natürlich, dass Sie bei Verstand sind und PostgreSQL für die Entwicklung, das Testen und die Produktion verwenden).

Mit dieser vorgenommenen Änderung werden Ihre Trigger in db/structure.sql verfolgt und die Neuerstellung der Datenbank wird sie nicht verlieren.