summaryrefslogtreecommitdiff
path: root/docs/tutorials/wiki2/src/basiclayout
diff options
context:
space:
mode:
authorSteve Piercy <web@stevepiercy.com>2018-06-22 18:09:59 -0700
committerSteve Piercy <web@stevepiercy.com>2018-06-22 18:09:59 -0700
commit8b43919a98177d4591736c3125b79ab0eeed290f (patch)
treeaff7367098a9cd0b1d0bc3dcc05beae6cf3a8ef0 /docs/tutorials/wiki2/src/basiclayout
parent63f24316b5b042d1cb6fe01528d800fdd5281f0a (diff)
downloadpyramid-8b43919a98177d4591736c3125b79ab0eeed290f.tar.gz
pyramid-8b43919a98177d4591736c3125b79ab0eeed290f.tar.bz2
pyramid-8b43919a98177d4591736c3125b79ab0eeed290f.zip
Update source files for basiclayout step for Alembic support
Diffstat (limited to 'docs/tutorials/wiki2/src/basiclayout')
-rw-r--r--docs/tutorials/wiki2/src/basiclayout/README.txt14
-rw-r--r--docs/tutorials/wiki2/src/basiclayout/development.ini6
-rw-r--r--docs/tutorials/wiki2/src/basiclayout/production.ini6
-rw-r--r--docs/tutorials/wiki2/src/basiclayout/pytest.ini2
-rw-r--r--docs/tutorials/wiki2/src/basiclayout/setup.py3
-rw-r--r--docs/tutorials/wiki2/src/basiclayout/tutorial/scripts/initializedb.py45
-rw-r--r--docs/tutorials/wiki2/src/basiclayout/tutorial/views/default.py5
7 files changed, 29 insertions, 52 deletions
diff --git a/docs/tutorials/wiki2/src/basiclayout/README.txt b/docs/tutorials/wiki2/src/basiclayout/README.txt
index 7b33da610..6d2df698e 100644
--- a/docs/tutorials/wiki2/src/basiclayout/README.txt
+++ b/docs/tutorials/wiki2/src/basiclayout/README.txt
@@ -20,9 +20,19 @@ Getting Started
env/bin/pip install -e ".[testing]"
-- Configure the database.
+- Initialize the database using Alembic.
- env/bin/initialize_tutorial_db development.ini
+ - Generate your first revision.
+
+ env/bin/alembic -c development.ini revision --autogenerate -m "init"
+
+ - Upgrade to that revision.
+
+ env/bin/alembic -c development.ini upgrade head
+
+ - Load default data.
+
+ env/bin/initialize_tutorial_db development.ini
- Run your project's tests.
diff --git a/docs/tutorials/wiki2/src/basiclayout/development.ini b/docs/tutorials/wiki2/src/basiclayout/development.ini
index 4a67896b2..ee050c0ea 100644
--- a/docs/tutorials/wiki2/src/basiclayout/development.ini
+++ b/docs/tutorials/wiki2/src/basiclayout/development.ini
@@ -26,6 +26,12 @@ retry.attempts = 3
# wsgi server configuration
###
+[alembic]
+# path to migration scripts
+script_location = tutorial/alembic
+file_template = %%(year)d%%(month).2d%%(day).2d_%%(rev)s
+# file_template = %%(rev)s_%%(slug)s
+
[server:main]
use = egg:waitress#main
listen = localhost:6543
diff --git a/docs/tutorials/wiki2/src/basiclayout/production.ini b/docs/tutorials/wiki2/src/basiclayout/production.ini
index a28e47a83..91d0f5ddb 100644
--- a/docs/tutorials/wiki2/src/basiclayout/production.ini
+++ b/docs/tutorials/wiki2/src/basiclayout/production.ini
@@ -20,6 +20,12 @@ retry.attempts = 3
# wsgi server configuration
###
+[alembic]
+# path to migration scripts
+script_location = tutorial/alembic
+file_template = %%(year)d%%(month).2d%%(day).2d_%%(rev)s
+# file_template = %%(rev)s_%%(slug)s
+
[server:main]
use = egg:waitress#main
listen = *:6543
diff --git a/docs/tutorials/wiki2/src/basiclayout/pytest.ini b/docs/tutorials/wiki2/src/basiclayout/pytest.ini
index 8b76bc410..a3489cdf8 100644
--- a/docs/tutorials/wiki2/src/basiclayout/pytest.ini
+++ b/docs/tutorials/wiki2/src/basiclayout/pytest.ini
@@ -1,3 +1,3 @@
[pytest]
testpaths = tutorial
-python_files = *.py
+python_files = test*.py
diff --git a/docs/tutorials/wiki2/src/basiclayout/setup.py b/docs/tutorials/wiki2/src/basiclayout/setup.py
index 9fc5519a5..1638ef28e 100644
--- a/docs/tutorials/wiki2/src/basiclayout/setup.py
+++ b/docs/tutorials/wiki2/src/basiclayout/setup.py
@@ -9,6 +9,7 @@ with open(os.path.join(here, 'CHANGES.txt')) as f:
CHANGES = f.read()
requires = [
+ 'alembic',
'plaster_pastedeploy',
'pyramid >= 1.9a',
'pyramid_debugtoolbar',
@@ -54,7 +55,7 @@ setup(
'main = tutorial:main',
],
'console_scripts': [
- 'initialize_tutorial_db = tutorial.scripts.initializedb:main',
+ 'initialize_tutorial_db = tutorial.scripts.initialize_db:main',
],
},
)
diff --git a/docs/tutorials/wiki2/src/basiclayout/tutorial/scripts/initializedb.py b/docs/tutorials/wiki2/src/basiclayout/tutorial/scripts/initializedb.py
deleted file mode 100644
index 7307ecc5c..000000000
--- a/docs/tutorials/wiki2/src/basiclayout/tutorial/scripts/initializedb.py
+++ /dev/null
@@ -1,45 +0,0 @@
-import os
-import sys
-import transaction
-
-from pyramid.paster import (
- get_appsettings,
- setup_logging,
- )
-
-from pyramid.scripts.common import parse_vars
-
-from ..models.meta import Base
-from ..models import (
- get_engine,
- get_session_factory,
- get_tm_session,
- )
-from ..models import MyModel
-
-
-def usage(argv):
- cmd = os.path.basename(argv[0])
- print('usage: %s <config_uri> [var=value]\n'
- '(example: "%s development.ini")' % (cmd, cmd))
- sys.exit(1)
-
-
-def main(argv=sys.argv):
- if len(argv) < 2:
- usage(argv)
- config_uri = argv[1]
- options = parse_vars(argv[2:])
- setup_logging(config_uri)
- settings = get_appsettings(config_uri, options=options)
-
- engine = get_engine(settings)
- Base.metadata.create_all(engine)
-
- session_factory = get_session_factory(engine)
-
- with transaction.manager:
- dbsession = get_tm_session(session_factory, transaction.manager)
-
- model = MyModel(name='one', value=1)
- dbsession.add(model)
diff --git a/docs/tutorials/wiki2/src/basiclayout/tutorial/views/default.py b/docs/tutorials/wiki2/src/basiclayout/tutorial/views/default.py
index a404d4154..f8793ffb5 100644
--- a/docs/tutorials/wiki2/src/basiclayout/tutorial/views/default.py
+++ b/docs/tutorials/wiki2/src/basiclayout/tutorial/views/default.py
@@ -20,9 +20,8 @@ db_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_tutorial_db" script
- to initialize your database tables. Check your virtual
- environment's "bin" directory for this script and try to run it.
+1. You may need to initialize your database tables with `alembic`.
+ Check your README.txt for description 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