2013-09-27 6 views
5

Unsere postgres-Datenbank verfügt über zwei Schemas: ein öffentliches Schema und ein Metadatenschema. Ich brauche beide Schemas in meiner Test-Datenbank, aber rake db:schema:dump nur Dumps das öffentliche Schema. Wenn ich meiner Datenbank.yml-Datei schema_search_path: "public, metadata" hinzufüge, werden beide Schemas ausgegeben, aber die Schemainformationen sind nicht vorhanden.Wie kann ich mehrere postgres-Schemas mit Rake db dump: dump: schema

Wie kann ich beide Schemas auf db/schema.rb ausgeben, damit ich sie mit rake db:test:prepare laden kann?

+1

Lesen Sie den Code, ich glaube nicht, dass es möglich ist, es sei denn, Sie im nativen Format ausgeben. Zum Beispiel sehe ich, dass Sie ein table_name_prefix hinzufügen können, aber das ist global und würde zu allen Tabellen hinzugefügt werden. Wie könnte man versuchen "ActiveRecord :: Base.table_name_prefix = 'public.'", Könnte es funktionieren. – Rob

Antwort

2

Es sieht für mich wie die Antwort ist eine Strukturdatei anstelle einer Schemadatei zu verwenden.

Fügen Sie diese

# use a .sql structure instead of a schema.rb for the schema 
config.active_record.schema_format = :sql 

entfernen Datei Ihre schema.rb

Dies wird nun Dump Ihrer Datenbank mit Struktur (SQL) intead von Schema (rb) und es application.rb kann ausdrucksvoller sein. Jetzt ist es jedoch an Ihren Datenbankanbieter gebunden (für uns keine große Sache).

bundle exec rake db:test:prepare 
Verwandte Themen