2017-01-06 2 views
-1

Ich verwende Rails 5 mit Minitest 5.9.Mit Rails Minitest Wie erstelle ich Ansichten für die Datenbankmigration für meine Testdatenbank neu?

Ich habe einige Ansichten in meiner Anwendung für komplexe Abfragen.

Jedes Mal, wenn ich eine neue Migration erstelle, entfernt meine Testdatenbank meine Ansichten und ich muss sie neu erstellen.

Wie automatisiere ich die Ansicht Erholung?

+0

Sie können einfaches altes SQL in einer Migration verwenden, die die Ansichten erstellt. Es gibt auch ein Juwel namens [Scenic] (https://robots.thoughtbot.com/announcing-scenic-versionedatabase-views-for-rails), das Datenbankansichten zu einem erstklassigen Bürger macht. – max

+0

Ich verwende SQL in der Migration, aber jedes Mal, wenn ich eine neue Migration mache, wird die Migration ausgeführt und während dieses Vorgangs werden meine Ansichten gelöscht, sodass ich sie neu erstellen muss. Ich habe auch versucht https://github.com/anykeyh/rails_db_views, die Ansichten erstklassige Bürger und funktionierte großartig gemacht, aber es widersprach mit einem anderen Juwel, so hörte ich auf. Danke für den Tipp auf Scenic werde ich mal schauen. –

Antwort

1

Ich hatte ein ähnliches Problem. Wir hatten einige Trigger in unserer DB, die nicht durch die Schienenmigration erzeugt werden konnten.

Die von uns befolgte Lösung verwendet Samen. Wir definierten unsere Trigger in db/seeds.rb, und bevor wir die Tests durchführten, liefen wir rake db:reset. Dadurch wurde die Datenbank gelöscht, sie wurde erneut erstellt, das Schema wurde geladen und es wurde ausgeführt, was sich in db/seeds.rb befindet.

Hoffe, dass Sie das gleiche verwenden können.

+1

Danke! Ich könnte damit enden. Im Moment hat unser Seeds db Daten für Dev und Prod. Ich denke, ich könnte konditionelle Logik dort für was in Abhängigkeit von der Umgebung ... –

Verwandte Themen