C'è un problema frustrante in cui le mie migrazioni dei binari aggiornano lo schema con spazi bianchi e la posizione delle colonne della tabella.La migrazione delle rotaie sta sempre inserendo spazi bianchi o modificando l'ordine delle colonne nello schema
Quindi la maggior parte delle volte quando eseguo bundle exec rake db:migrate
verrà eseguito uno degli scenari seguenti. Quando unisco questo nel nostro ramo principale e altri sviluppatori lo risolvono, la migrazione delle loro rotaie ripristina le schede e l'ordine delle posizioni.
Abbiamo notato che tutti e tre gli sviluppatori del team hanno lo stesso problema durante l'esecuzione di una migrazione se sono stato l'ultimo responsabile dello schema.
Ho appena aggiornato postgres to v9.2.4
che è lo stesso degli altri sviluppatori. Qualche idea su cos'altro potrei provare?
Esempi
Qui di seguito sono diff git per dimostrare ciò che sta accadendo.
Esempio di ri-ordinare lo schema:
create_table "accounts", :force => true do |t|
t.integer "organisation_id"
- t.boolean "active", :default => false
t.text "notes"
+ t.boolean "active", :default => false
end
Esempio di aggiunta schede per lo schema:
create_table "comments", :force => true do |t|
- t.integer "commentable_id", :default => 0
- t.string "commentable_type", :default => ""
+ t.integer "commentable_id", :default => 0
+ t.string "commentable_type", :default => ""
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
Cosa ti fa pensare che gli spazi bianchi siano schede? Qualche possibilità di vedere l'intera versione precedente e successiva di uno di questi 'create_table's? –
@muistooshort Grazie, potrebbero essere gli spazi bianchi – Coderama
Il primo indica semplicemente che non tutte le colonne sono nello stesso ordine all'interno del database, confrontare l'output '\ d accounts' in' psql' e troverai il colpevole; questo può accadere in vari modi e non dovrebbe essere un problema. La seconda è probabilmente solo una cosa di allineamento (cioè rendere tutte le opzioni di ': default => ...' allineate) ma è difficile dirlo senza vedere il tutto prima e dopo i file 'schema.rb'. –