summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2012-03-14 14:46:47 -0700
committerChris McDonough <chrism@plope.com>2012-03-14 14:46:47 -0700
commit4d22adc0ea7a53158c1e7e5489cac8d63db80a06 (patch)
treeeafbebec3e6333dcf5d57bc1d4d6b9efc07ccc53
parent34942793f03dea9d7f13b6e00d34946dee98d098 (diff)
parenta678380044bdb762fbff7559dc2f9b7e671e5337 (diff)
downloadpyramid-4d22adc0ea7a53158c1e7e5489cac8d63db80a06.tar.gz
pyramid-4d22adc0ea7a53158c1e7e5489cac8d63db80a06.tar.bz2
pyramid-4d22adc0ea7a53158c1e7e5489cac8d63db80a06.zip
Merge branch '1.3-branch'
-rw-r--r--CHANGES.txt10
-rw-r--r--pyramid/scaffolds/__init__.py14
-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_tmpl25
-rw-r--r--pyramid/scaffolds/alchemy/setup.py_tmpl2
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
""",
)