2010-10-24 7 views
12

Heroku nie wydaje się aktualizować schematu bazy danych po wdrożeniu. Oto szczegóły:Heroku nie aktualizuje schematu bazy danych

Oto co jest powinno wyglądać dla klasy użytkownika:

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 

końcowego

tutaj jest moja procedura Deploy:

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

Wszystko wydaje się iść płynnie ... z tym wyjątkiem, że jeśli sprawdzę rzeczywistą tabelę użytkowników w db ...

heroku console User 

... mam starą wersję użytkownika ...

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

Każdy pomysł co robię źle? Bardzo dziękuję za pomoc!

Simon

+0

Czy jesteś pewien, że wszystkie twoje migracje są pod kontrolą źródła? –

Odpowiedz

24

Czy widzisz wyjście kiedy heroku rake db:migrate?

Po przeprowadzeniu migracji uruchom program heroku restart, aby ponownie uruchomić serwery WWW i pracowników DJ-a. To nie powinno wpłynąć na twoją konsolę, ale widziałem serwery WWW obsługujące stare wersje kodu natychmiast po wdrożeniu, co zwykle nie jest problemem, ale z oczekującymi migracjami może być.

+0

Dzięki tfe, wygląda na tymczasowy problem. Teraz działa dobrze. Myślę, że restart również rozwiązałby problem. – Simon

+3

"Heroku restart' pracował dla mnie, dzięki – Eloff

0

Przyjęta odpowiedź jest właściwa. FYI choć teraz używać heroku run rake db:migrate ponieważ heroku rake db:migrate jest przestarzała

1

Możecie spróbować

Heroku run rake db: migrować
Heroku restart

nadzieję, że to pomaga.

-1

Run heroku rake db:migrate Następnie heroku restart

Odśwież swoją stronę internetową i powinny działać.