2010-10-24 5 views
12

Heroku non sembra aggiornare lo schema del mio database durante la distribuzione. Ecco i dettagli:heroku non sta aggiornando lo schema del database

Ecco ciò che è dovrebbe essere simile per la classe User:

create_table "users", :force => true do |t| 
t.string "username" 
t.datetime "created_at" 
t.datetime "updated_at" 
t.string "email" 
t.string "encrypted_password" 
t.string "salt" 
t.string "remember_token" 
t.boolean "admin",    :default => false 

fine

Ecco la mia procedura di implementazione:

git push heroku master 
heroku rake db:migrate 
heroku db:push 

Tutto sembra andare senza problemi ... tranne che se controllo la tabella in realtà Utente in db ...

heroku console User 

... ho una vecchia versione di utente ...

User(id: integer, username: string, created_at: datetime, updated_at: datetime) 

Qualsiasi idea di cosa sto facendo male? Grazie mille per il tuo aiuto!

Simon

+0

Sei sicuro che tutte le migrazioni siano sotto controllo del codice sorgente? –

risposta

24

Non si vede alcuna uscita quando heroku rake db:migrate?

Provare a eseguire heroku restart dopo la migrazione per riavviare i server Web e i DJ worker. Ciò non dovrebbe influenzare la tua console, ma ho visto server Web che servono vecchie versioni del codice subito dopo la distribuzione, che normalmente non è un problema, ma con le migrazioni in sospeso possono essere.

+0

Grazie, sembra un problema temporaneo. Funziona bene ora. Immagino che un riavvio avrebbe risolto anche il problema. – Simon

+3

'heroku restart' ha funzionato per me, grazie – Eloff

0

La risposta accettata è giusta. Cordiali saluti, però, è ora possibile utilizzare heroku run rake db:migrate perché heroku rake db:migrate è deprecato

1

Si potrebbe desiderare di provare

Heroku run rake db: migrate
Heroku riavviare

Spero che questo aiuti.

-1

Run heroku rake db:migrate Poi heroku restart

Aggiorna la tua pagina web e dovrebbe tutto il lavoro.