2016-03-22 4 views
3

Я пытаюсь получить очень простое приложение golang heroku с поддержкой базы данных, работающее как мир привет.Heroku local не использует мой последний код. Зачем?

Развернутая версия моего приложения Heroku работает отлично, и если я вручную проверю его локально, он отлично работает, но heroku local упрямо использует старую версию моего кода. В частности:

$ heroku local 
forego | starting web.1 on port 8080 

работает, но неожиданно служит старой версии приложения. С другой стороны, это:

$ go run web.go 

и это:

$ git push heroku master 
Everything up-to-date 
$ heroku open 

оба служат то, что я ожидаю, что это последняя версия моего кода.

Это действительно меня смущает. Я прочитал всю документацию и дважды проверял состояние всего, и не могу найти ничего, что указывает на то, что происходит, или может вызвать это.

Мое предположение, что heroku local использует скомпилированный пул откуда-то, который не обновляется.

ответ

3

Проблема в том, что golang - это скомпилированный язык, и heroku local просто использует последнюю сборку и не инициирует перестройку самостоятельно. Исправление просто не забудьте скомпилировать перед запуском heroku local:

$ go install 

Легко забыть об этом, если вы используете go run web.go для тестирования, потому что не нужно перекомпилировать, и Heroku сам автоматически делает сборку, так вы можете уйти с никогда не запускать go install, пока не попытаетесь использовать heroku local.

(я на самом деле понял это, как только у меня был весь вопрос выписал, но я полагал, что я должен размещать в любом случае для справки.)

+0

Я ценю, что вы разместить слово взял все-таки. +1 – mbb

 Смежные вопросы

  • Нет связанных вопросов^_^