2015-03-17 7 views

risposta

0

Non è possibile utilizzare il codice di rotaia (change_column) nel terminale.

Quello che devi fare è prima creare la migrazione: rails generate migration ChangeMarkUpType e quindi inserire il codice di rotaia nel file che è stato creato.

Si può leggere di più su migrazioni here

+0

ok ho fatto e il cambiamento come change_column definiti: palo,: mark_up,: float ma il mio schema dimostra ancora che: mark_up è un numero intero –

+1

sei scappato rake db: migrate? –

+0

Sì ancora nessun cambiamento –

12

nel vostro terminale:

rails generate migration ChangeMarkUpToFloat 

e nel file che viene creato: db/migrate/2015xxxxxxxxxx/change_mark_up_to_float.rb

modificarlo a:

class ChangeMarkUpToFloat < ActiveRecord::Migration 
    def change 
    change_column :stakes, :mark_up, :float 
    end 
end 

e poi di nuovo nel tuo terminale:

rake db:migrate 
+0

Questo è ok quando l'app non è in produzione. Quando l'app è in produzione, ti consigliamo di seguire la guida del cantiere su [zero downtime deployment] (https://blog.engineyard.com/2011/zero-downtime-deploys-with-migrations) – bsvin33t

+0

Fai attenzione con l'uso del 'change 'metodo quando una migrazione non è realmente reversibile. Se hai eseguito 'rake db: migrate: down', come saprebbe che tipo convertire? Considera invece la definizione di 'up' e' down'. – maaachine

Problemi correlati