学习《Flask Web开发》到最后一步,部署。按照书上和网上搜索的教程,成功将程序部署到了heroku上。但是在打开heroku上的应用时,显示Internal Server Error。 在本地终端logs,全部信息如下:
lu@lu-X455LD:~/桌面/55$ heroku logs
▸ heroku-cli: update available from 6.13.7 to 6.14.34-1fcf80e
2017-10-08T06:57:28.195797+00:00 app[api]: Attach DATABASE (@ref:postgresql-tapered-57921) by user lubing1895@outlook.com
2017-10-08T06:57:28.195797+00:00 app[api]: Release v3 created by user lubing1895@outlook.com
2017-10-08T06:58:40.000000+00:00 app[api]: Build started by user lubing1895@outlook.com
2017-10-08T07:00:00.559476+00:00 app[api]: Scaled to web@1:Free by user lubing1895@outlook.com
2017-10-08T07:00:00.541380+00:00 app[api]: Release v4 created by user lubing1895@outlook.com
2017-10-08T07:00:00.541380+00:00 app[api]: Deploy 20032445 by user lubing1895@outlook.com
2017-10-08T06:58:40.000000+00:00 app[api]: Build succeeded
2017-10-08T07:00:04.701213+00:00 heroku[web.1]: Starting process with command `gunicorn manage:app`
2017-10-08T07:00:07.554227+00:00 app[web.1]: [2017-10-08 07:00:07 +0000] [4] [INFO] Starting gunicorn 19.7.1
2017-10-08T07:00:07.554911+00:00 app[web.1]: [2017-10-08 07:00:07 +0000] [4] [INFO] Listening at: http://0.0.0.0:15526 (4)
2017-10-08T07:00:07.555030+00:00 app[web.1]: [2017-10-08 07:00:07 +0000] [4] [INFO] Using worker: sync
2017-10-08T07:00:07.565728+00:00 app[web.1]: [2017-10-08 07:00:07 +0000] [8] [INFO] Booting worker with pid: 8
2017-10-08T07:00:07.582038+00:00 app[web.1]: [2017-10-08 07:00:07 +0000] [9] [INFO] Booting worker with pid: 9
2017-10-08T07:00:08.497327+00:00 heroku[web.1]: State changed from starting to up
2017-10-08T07:01:06.437496+00:00 app[api]: Starting process with command `python manage.py deploy` by user lubing1895@outlook.com
2017-10-08T07:01:10.449069+00:00 heroku[run.6585]: State changed from starting to up
2017-10-08T07:01:11.177883+00:00 heroku[run.6585]: Awaiting client
2017-10-08T07:01:11.216994+00:00 heroku[run.6585]: Starting process with command `python manage.py deploy`
2017-10-08T07:01:20.010912+00:00 heroku[run.6585]: Process exited with status 0
2017-10-08T07:01:20.025293+00:00 heroku[run.6585]: State changed from up to complete
2017-10-08T07:01:32.245456+00:00 heroku[web.1]: Restarting
2017-10-08T07:01:32.247496+00:00 heroku[web.1]: State changed from up to starting
2017-10-08T07:01:33.058475+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2017-10-08T07:01:33.094028+00:00 app[web.1]: [2017-10-08 07:01:33 +0000] [9] [INFO] Worker exiting (pid: 9)
2017-10-08T07:01:33.118092+00:00 app[web.1]: [2017-10-08 07:01:33 +0000] [4] [INFO] Handling signal: term
2017-10-08T07:01:33.118685+00:00 app[web.1]: [2017-10-08 07:01:33 +0000] [8] [INFO] Worker exiting (pid: 8)
2017-10-08T07:01:33.532935+00:00 app[web.1]: [2017-10-08 07:01:33 +0000] [4] [INFO] Shutting down: Master
2017-10-08T07:01:33.816453+00:00 heroku[web.1]: Process exited with status 0
2017-10-08T07:01:37.271203+00:00 heroku[web.1]: Starting process with command `gunicorn manage:app`
2017-10-08T07:01:42.091311+00:00 heroku[web.1]: State changed from starting to up
2017-10-08T07:01:41.915316+00:00 app[web.1]: [2017-10-08 07:01:41 +0000] [4] [INFO] Starting gunicorn 19.7.1
2017-10-08T07:01:41.916167+00:00 app[web.1]: [2017-10-08 07:01:41 +0000] [4] [INFO] Listening at: http://0.0.0.0:56698 (4)
2017-10-08T07:01:41.916322+00:00 app[web.1]: [2017-10-08 07:01:41 +0000] [4] [INFO] Using worker: sync
2017-10-08T07:01:41.921249+00:00 app[web.1]: [2017-10-08 07:01:41 +0000] [8] [INFO] Booting worker with pid: 8
2017-10-08T07:01:41.956983+00:00 app[web.1]: [2017-10-08 07:01:41 +0000] [9] [INFO] Booting worker with pid: 9
2017-10-08T07:02:39.116904+00:00 heroku[router]: at=info method=GET path="/" host=lubing.herokuapp.com request_id=3c6489a7-3d13-4b99-9de9-24762058d7c8 fwd="47.91.29.209" dyno=web.1 connect=0ms service=221ms status=500 bytes=244 protocol=https
2017-10-08T07:02:39.107972+00:00 app[web.1]: [2017-10-08 07:02:39 +0000] [8] [ERROR] Error handling request /
2017-10-08T07:02:39.107997+00:00 app[web.1]: Traceback (most recent call last):
2017-10-08T07:02:39.107998+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
2017-10-08T07:02:39.108000+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
2017-10-08T07:02:39.107999+00:00 app[web.1]: context)
2017-10-08T07:02:39.108001+00:00 app[web.1]: cursor.execute(statement, parameters)
2017-10-08T07:02:39.108002+00:00 app[web.1]: sqlite3.OperationalError: no such table: posts
2017-10-08T07:02:39.108002+00:00 app[web.1]:
2017-10-08T07:02:39.108003+00:00 app[web.1]: The above exception was the direct cause of the following exception:
2017-10-08T07:02:39.108004+00:00 app[web.1]:
2017-10-08T07:02:39.108005+00:00 app[web.1]: Traceback (most recent call last):
2017-10-08T07:02:39.108005+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle
2017-10-08T07:02:39.108006+00:00 app[web.1]: self.handle_request(listener, req, client, addr)
2017-10-08T07:02:39.108007+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
2017-10-08T07:02:39.108008+00:00 app[web.1]: respiter = self.wsgi(environ, resp.start_response)
2017-10-08T07:02:39.108011+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1994, in __call__
2017-10-08T07:02:39.108012+00:00 app[web.1]: return self.wsgi_app(environ, start_response)
2017-10-08T07:02:39.108012+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1985, in wsgi_app
2017-10-08T07:02:39.108013+00:00 app[web.1]: response = self.handle_exception(e)
2017-10-08T07:02:39.108014+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1540, in handle_exception
2017-10-08T07:02:39.108014+00:00 app[web.1]: reraise(exc_type, exc_value, tb)
2017-10-08T07:02:39.108015+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
2017-10-08T07:02:39.108015+00:00 app[web.1]: raise value
2017-10-08T07:02:39.108016+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
2017-10-08T07:02:39.108017+00:00 app[web.1]: response = self.full_dispatch_request()
2017-10-08T07:02:39.108017+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
2017-10-08T07:02:39.108018+00:00 app[web.1]: rv = self.handle_user_exception(e)
2017-10-08T07:02:39.108019+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
2017-10-08T07:02:39.108042+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
2017-10-08T07:02:39.108042+00:00 app[web.1]: raise value
2017-10-08T07:02:39.108043+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
2017-10-08T07:02:39.108044+00:00 app[web.1]: rv = self.dispatch_request()
2017-10-08T07:02:39.108040+00:00 app[web.1]: reraise(exc_type, exc_value, tb)
2017-10-08T07:02:39.108044+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
2017-10-08T07:02:39.108045+00:00 app[web.1]: return self.view_functions[rule.endpoint](**req.view_args)
2017-10-08T07:02:39.108046+00:00 app[web.1]: File "/app/app/main/views.py", line 54, in index
2017-10-08T07:02:39.108047+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask_sqlalchemy/__init__.py", line 476, in paginate
2017-10-08T07:02:39.108048+00:00 app[web.1]: items = self.limit(per_page).offset((page - 1) * per_page).all()
2017-10-08T07:02:39.108047+00:00 app[web.1]: error_out=False)
2017-10-08T07:02:39.108049+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2638, in all
2017-10-08T07:02:39.108050+00:00 app[web.1]: return list(self)
2017-10-08T07:02:39.108050+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2790, in __iter__
2017-10-08T07:02:39.108051+00:00 app[web.1]: return self._execute_and_instances(context)
2017-10-08T07:02:39.108052+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2813, in _execute_and_instances
2017-10-08T07:02:39.108052+00:00 app[web.1]: result = conn.execute(querycontext.statement, self._params)
2017-10-08T07:02:39.108053+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 945, in execute
2017-10-08T07:02:39.108053+00:00 app[web.1]: return meth(self, multiparams, params)
2017-10-08T07:02:39.108054+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 263, in _execute_on_connection
2017-10-08T07:02:39.108055+00:00 app[web.1]: return connection._execute_clauseelement(self, multiparams, params)
2017-10-08T07:02:39.108055+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1053, in _execute_clauseelement
2017-10-08T07:02:39.108058+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1393, in _handle_dbapi_exception
2017-10-08T07:02:39.108057+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1189, in _execute_context
2017-10-08T07:02:39.108059+00:00 app[web.1]: exc_info
2017-10-08T07:02:39.108056+00:00 app[web.1]: compiled_sql, distilled_params
2017-10-08T07:02:39.108058+00:00 app[web.1]: context)
2017-10-08T07:02:39.108060+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
2017-10-08T07:02:39.108060+00:00 app[web.1]: reraise(type(exception), exception, tb=exc_tb, cause=cause)
2017-10-08T07:02:39.108061+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
2017-10-08T07:02:39.108061+00:00 app[web.1]: raise value.with_traceback(tb)
2017-10-08T07:02:39.113559+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
2017-10-08T07:02:39.113562+00:00 app[web.1]: context)
2017-10-08T07:02:39.113563+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
2017-10-08T07:02:39.116018+00:00 app[web.1]: sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: posts [SQL: 'SELECT posts.id AS posts_id, posts.body AS posts_body, posts.body_html AS posts_body_html, posts.timestamp AS posts_timestamp, posts.author_id AS posts_author_id \nFROM posts ORDER BY posts.timestamp DESC\n LIMIT ? OFFSET ?'] [parameters: (20, 0)]
2017-10-08T07:02:39.113563+00:00 app[web.1]: cursor.execute(statement, parameters)
2017-10-08T07:02:40.384166+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=lubing.herokuapp.com request_id=155118d5-2d86-4367-bfc0-b97b2b2880d3 fwd="47.91.29.209" dyno=web.1 connect=0ms service=942ms status=404 bytes=2617 protocol=https
我想主要原因可能数据库的的原因:
2017-10-08T07:02:39.116018+00:00 app[web.1]: sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: posts [SQL: 'SELECT posts.id AS posts_id, posts.body AS posts_body, posts.body_html AS posts_body_html, posts.timestamp AS posts_timestamp, posts.author_id AS posts_author_id nFROM posts ORDER BY posts.timestamp DESCn LIMIT ? OFFSET ?'] [parameters: (20, 0)]
但是应用在本地并没有问题。
求指导!
你还没有创建表