diff options
| author | Chris McDonough <chrism@plope.com> | 2012-03-14 14:46:47 -0700 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2012-03-14 14:46:47 -0700 |
| commit | 4d22adc0ea7a53158c1e7e5489cac8d63db80a06 (patch) | |
| tree | eafbebec3e6333dcf5d57bc1d4d6b9efc07ccc53 | |
| parent | 34942793f03dea9d7f13b6e00d34946dee98d098 (diff) | |
| parent | a678380044bdb762fbff7559dc2f9b7e671e5337 (diff) | |
| download | pyramid-4d22adc0ea7a53158c1e7e5489cac8d63db80a06.tar.gz pyramid-4d22adc0ea7a53158c1e7e5489cac8d63db80a06.tar.bz2 pyramid-4d22adc0ea7a53158c1e7e5489cac8d63db80a06.zip | |
Merge branch '1.3-branch'
| -rw-r--r-- | CHANGES.txt | 10 | ||||
| -rw-r--r-- | pyramid/scaffolds/__init__.py | 14 | ||||
| -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 |
5 files changed, 35 insertions, 16 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/__init__.py b/pyramid/scaffolds/__init__.py index ad5753713..d8fb9a62f 100644 --- a/pyramid/scaffolds/__init__.py +++ b/pyramid/scaffolds/__init__.py @@ -1,6 +1,5 @@ import binascii import os -import sys from pyramid.compat import native_ @@ -51,16 +50,3 @@ class ZODBProjectTemplate(PyramidTemplate): class AlchemyProjectTemplate(PyramidTemplate): _template_dir = 'alchemy' summary = 'Pyramid SQLAlchemy project using url dispatch' - def post(self, command, output_dir, vars): # pragma: no cover - val = PyramidTemplate.post(self, command, output_dir, vars) - vars = vars.copy() - vars['output_dir'] = output_dir - vars['pybin'] = os.path.join(sys.exec_prefix, 'bin') - self.out('') - self.out('Please run the "populate_%(project)s" script to set up the ' - 'SQL database after\ninstalling (but before starting) the ' - 'application.\n\n For example:\n\ncd %(output_dir)s\n' - '%(pybin)s/python setup.py develop\n' - '%(pybin)s/populate_%(project)s development.ini' - % vars) - return val 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 """, ) |
