2013-08-06 5 views
1

My Django app работает нормально локально, а иногда нажатие на Heroku является успешным, но журналы heroku показывают ошибки (и приложение не загружается в режиме онлайн). Кажется, что что-то не так с моим Procfile (или, может быть, с моим virtualenv, хотя я переделал все это, чтобы попытаться это исправить).Почему приложение Django работает локально, но не на Heroku?

Я пробовал много версий этого в моем PROCFILE:

web: python manage.py collectstatic --noinput; bin/gunicorn_django --workers=4 --bind=0.0.0.0:$PORT proj/prod_settings.py 

И это:

web: python manage.py runserver 0.0.0.0:$PORT collectstatic --noinput 
--settings=proj/prod_settings.py 

И это:

web: gunicorn bookfairy.wsgi.py 

Но я продолжаю получать ошибки, как эти :

-foreman start pid 17199 result: no such option: --noinput 

-foreman start pid 17229 result: no such option: --workers 

-foreman start pid 17299 result: Could not import settings 'proj/prod_settings.py' (Is it on sys.path?): Import by filename is not supported. 
-Push failed: slug archive could not be created 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to heroku 
-foreman start pid 16943 result: Error: Usage is runserver [optional port number, or ipaddr:port] 
-Process exited with status 1 
State changed from starting to crashed 
-heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/robots.txt  host=bookfairy.herokuapp.com fwd="66.249.72.200" dyno= connect= service= status=503 bytes= 
-heroku[router]: at=error code=H14 desc="No web processes running" method=GET path=/robots.txt host=bookfairy.herokuapp.com fwd="173.199.115.131" dyno= connect= service= status=503 bytes= 

и это:

File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute 
    output = self.handle(*args, **options) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle 
    return self.handle_noargs(**options) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 57, in handle_noargs 
    cursor = connection.cursor() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/__init__.py", line 317, in cursor 
    cursor = self.make_debug_cursor(self._cursor()) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 177, in _cursor 
    self.connection = Database.connect(**conn_params) 
    File "/app/.heroku/python/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect 
    conn = _connect(dsn, connection_factory=connection_factory, async=async) 
psycopg2.OperationalError: could not connect to server: Connection refused 
    Is the server running on host "localhost" (127.0.0.1) and accepting 
    TCP/IP connections on port 5432? 

вещи, которые я могу думать, что я пробовал:

  • удаляли и заменяли мой PROCFILE (капитализированные, да)
  • сделал пип замораживании на мой файл требований. txt
  • добавлен файл runtime.txt
  • начато dyno
  • следовали всем инструкциям Heroku Джанго
  • переоформлена свою структуру каталогов (и переехал мой файл wsgi.py в той же папке, requirements.txt)
  • попытался run_gunicorn (неизвестная ошибка команды)
  • пип (два раза, включая Django, psycopg2, dj-database-url)
  • heroku run python manage.py syncdb (Является ли сервер, работающий на хосте «localhost» (127.0.0.1) и принимающий TCP/IP соединения на порту 5432?)
  • проверено Postgres and Heroku toolbelt inst аэрации

Я был бы очень признателен, если вам поможет.

+0

Я только что получил электронное письмо от Heroku. Очевидно, что «Push failed: slug archive не удалось создать» ошибка была вызвана регрессией, и проблема теперь исправлена. –

ответ

4

Команда python manage.py runserver 0.0.0.0:$PORT collectstatic --noinput недействительна, вы пытаетесь сделать две вещи в одном.

python manage.py runserver 0.0.0.0:$PORT

python manage.py collectstatic --noinput

Разбейте их друг от друга, как отдельные команды, я хотел бы предложить положить runserver в вашем PROCFILE и работает collectstatic в оболочке.

+0

Должен был спросить раньше, спасибо! –

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