diff options
| -rw-r--r-- | CHANGES.txt | 10 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/scripts/initializedb.py (renamed from pyramid/scaffolds/alchemy/+package+/scripts/populate.py) | 0 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/+package+/views.py_tmpl | 25 | ||||
| -rw-r--r-- | pyramid/scaffolds/alchemy/setup.py_tmpl | 2 |
4 files changed, 35 insertions, 2 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index abdb3d80a..33db7b956 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -7,6 +7,16 @@ Bug Fixes - ``config.add_view(<aninstancemethod>)`` raised AttributeError involving ``__text__``. See https://github.com/Pylons/pyramid/issues/461 +Scaffolds +--------- + +- The ``alchemy`` scaffold now shows an informative error message in the + browser if the person creating the project forgets to run the + initialization script. + +- The ``alchemy`` scaffold initialization script is now called + ``initialize_<projectname>_db`` instead of ``populate_<projectname>``. + 1.3b2 (2012-03-02) ================== diff --git a/pyramid/scaffolds/alchemy/+package+/scripts/populate.py b/pyramid/scaffolds/alchemy/+package+/scripts/initializedb.py index 0e828465f..0e828465f 100644 --- a/pyramid/scaffolds/alchemy/+package+/scripts/populate.py +++ b/pyramid/scaffolds/alchemy/+package+/scripts/initializedb.py diff --git a/pyramid/scaffolds/alchemy/+package+/views.py_tmpl b/pyramid/scaffolds/alchemy/+package+/views.py_tmpl index b7b23fc67..9ecda9110 100644 --- a/pyramid/scaffolds/alchemy/+package+/views.py_tmpl +++ b/pyramid/scaffolds/alchemy/+package+/views.py_tmpl @@ -1,5 +1,8 @@ +from pyramid.response import Response from pyramid.view import view_config +from sqlalchemy.exc import DBAPIError + from .models import ( DBSession, MyModel, @@ -7,5 +10,25 @@ from .models import ( @view_config(route_name='home', renderer='templates/mytemplate.pt') def my_view(request): - one = DBSession.query(MyModel).filter(MyModel.name=='one').first() + try: + one = DBSession.query(MyModel).filter(MyModel.name=='one').first() + except DBAPIError: + return Response(conn_err_msg, content_type='text/plain', status_int=500) return {'one':one, 'project':'{{project}}'} + +conn_err_msg = """\ +Pyramid is having a problem using your SQL database. The problem +might be caused by one of the following things: + +1. You may need to run the "initialize_{{project}}_db" script + to initialize your database tables. Check your virtual + environment's "bin" directory for this script and try to run it. + +2. Your database server may not be running. Check that the + database server referred to by the "sqlalchemy.url" setting in + your "development.ini" file is running. + +After you fix the problem, please restart the Pyramid application to +try it again. +""" + diff --git a/pyramid/scaffolds/alchemy/setup.py_tmpl b/pyramid/scaffolds/alchemy/setup.py_tmpl index c091dca06..b80fc52a8 100644 --- a/pyramid/scaffolds/alchemy/setup.py_tmpl +++ b/pyramid/scaffolds/alchemy/setup.py_tmpl @@ -39,7 +39,7 @@ setup(name='{{project}}', [paste.app_factory] main = {{package}}:main [console_scripts] - populate_{{project}} = {{package}}.scripts.populate:main + initialize_{{project}}_db = {{package}}.scripts.initializedb:main """, ) |
