2013-09-27 11 views
5

Il nostro database postgres ha due schemi: uno schema pubblico e uno schema di metadati. Ho bisogno di entrambi gli schemi nel mio database di test, ma lo rake db:schema:dump scarica solo lo schema pubblico. Se aggiungo schema_search_path: "public, metadata" al mio file database.yml, esso scarica entrambi gli schemi, ma le informazioni sullo schema non sono presenti.Come posso scaricare più schemi Postgres usando rake db: dump: schema

Come posso scaricare entrambi gli schemi su db/schema.rb in modo da poterli caricare con rake db:test:prepare?

+1

Leggere il codice, non penso sia possibile a meno che non si esegua il dump nel formato nativo. Ad esempio, vedo che puoi aggiungere un nome_piano_prefix, ma che è globale e che verrà aggiunto a tutte le tabelle. Ad esempio, potresti provare "ActiveRecord :: Base.table_name_prefix = 'public.'", Potrebbe funzionare. – Rob

risposta

2

Mi sembra che la risposta sia utilizzare un file di struttura anziché un file di schema.

Aggiungi questo per application.rb

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

rimuovere il file schema.rb

Questo sarà ora il dump del database utilizzando la struttura (SQL) intead di schema (RB) e può essere più espressivo. Tuttavia, ora è legato al tuo fornitore di database (non è un grosso problema per noi).

bundle exec rake db:test:prepare 
Problemi correlati