герой не обновляет схему базы данных - PullRequest
12 голосов
/ 24 октября 2010

Heroku, похоже, не обновляет схему базы данных при развертывании.Вот подробности:

Вот как должен выглядеть класс 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

end

Вот моя процедура развертывания:

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

Кажется, все идет гладко ... за исключением того, что если я проверяю фактически таблицу User в db ...

heroku console User

... я получаю старую версию User ...

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

Есть идеи, что я делаю не так?Большое спасибо за вашу помощь!

Симон

Ответы [ 4 ]

24 голосов
/ 25 октября 2010

Видите ли вы какие-либо результаты, когда вы heroku rake db:migrate?

Попробуйте запустить heroku restart после миграции, чтобы перезапустить веб-серверы и диджеев. Это не должно влиять на вашу консоль, но я видел веб-серверы, обслуживающие старые версии кода сразу после развертывания, что обычно не является проблемой, но с отложенными миграциями может быть.

1 голос
/ 20 февраля 2016

Возможно, вы захотите попробовать

heroku run rake db: migrate
heroku restart

Надеюсь, это поможет.

0 голосов
/ 30 марта 2017

Пробег heroku rake run db:migrate Тогда heroku restart

Обновите веб-страницу, и все должно работать.

0 голосов
/ 29 июня 2013

Принятый ответ правильный.К вашему сведению, теперь вы используете heroku run rake db:migrate, потому что heroku rake db:migrate устарело

...