2013-05-23 5 views
5

utilizzando Ruby 2.0.0-p195 con Rails 3.2.13 e v0.3.1 di postgres_ext gem.Rails 3.2 schema dump trasforma tutte le colonne UUID in testo e manipola le dichiarazioni di array con la gemma postgres_ext

Sembra che abbia spesso problemi con i dump dello schema (non i dump della struttura SQL) utilizzando Rails in cui lo schema di conversione converte le colonne UUID in colonne e array di testo in colonne di testo con valori predefiniti di "{}". operazioni di routine come ad esempio rake db:schema:dump causa diff distruttive come la seguente:

- t.string "dbas",   :default => [],     :array => true 
- t.string "industries", :default => [],     :array => true 
+ t.text  "dbas",   :default => "{}" 
+ t.text  "industries", :default => "{}" 
- t.uuid  "uuid" 
+ t.text  "uuid" 

Se esamino la struttura del DB manualmente o semplicemente chiedere Rails che tipo di colonna di tipo pensa un determinato attributo ha, tutto sembra più che bene.

Naturalmente, questo problema provoca tutti i tipi di devastazione. A corto di passaggio a un dump di struttura SQL, come posso ottenere dump dello schema corretto?

+0

Il problema GitHub per questa domanda: https://github.com/dockyard/postgres_ext/issues/83 –

risposta

1

Con Rails 3.2, è necessario utilizzare rake db:structure:dump per eseguire il dump della versione SQL dello schema anziché della versione Ruby.

Rails 4 gestisce più tipi quando si utilizza rake db:schema:dump, che è quello che stai cercando.

+0

Postgres_ext fornisce il supporto di dump dello schema per i tipi nativi di PostgreSQL. Il problema qui è che un'altra gemma sembra interagire con postgres_ext. Vedi il problema qui: https://github.com/dockyard/postgres_ext/issues/83 –