[doc] sqla: move logger usage to service, fix service name.

This commit is contained in:
Romain Dorgueil
2017-07-06 12:46:19 +02:00
parent 0f23f1a940
commit a107434139

View File

@ -39,17 +39,21 @@ Open your `_services.py` file and replace the code:
.. code-block:: python .. code-block:: python
import bonobo import bonobo, dotenv, logging, os
import dotenv
from bonobo_sqlalchemy.util import create_postgresql_engine from bonobo_sqlalchemy.util import create_postgresql_engine
dotenv.load_dotenv(dotenv.find_dotenv()) dotenv.load_dotenv(dotenv.find_dotenv())
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
def get_services(): def get_services():
return { return {
'fs': bonobo.open_fs(), 'fs': bonobo.open_examples_fs('datasets'),
'db': create_postgresql_engine(name='tutorial') 'fs.output': bonobo.open_fs(),
'sqlalchemy.engine': create_postgresql_engine(**{
'name': 'tutorial',
'user': 'tutorial',
'pass': 'tutorial',
})
} }
The `create_postgresql_engine` is a tiny function building the DSN from reasonable defaults, that you can override The `create_postgresql_engine` is a tiny function building the DSN from reasonable defaults, that you can override
@ -125,15 +129,15 @@ Now, let's use a little trick and add this section to `pgdb.py`:
.. code-block:: python .. code-block:: python
import logging, sys import sys
from bonobo.commands.run import get_default_services
from sqlalchemy import Table, Column, String, Integer, MetaData from sqlalchemy import Table, Column, String, Integer, MetaData
def main(): def main():
from bonobo.commands.run import get_default_services
services = get_default_services(__file__) services = get_default_services(__file__)
if len(sys.argv) == 1:
if len(sys.argv) == 2 and sys.argv[1] == 'reset': return bonobo.run(graph, services=services)
elif len(sys.argv) == 2 and sys.argv[1] == 'reset':
engine = services.get('sqlalchemy.engine') engine = services.get('sqlalchemy.engine')
metadata = MetaData() metadata = MetaData()
@ -145,11 +149,10 @@ Now, let's use a little trick and add this section to `pgdb.py`:
Column('address', String(255)), Column('address', String(255)),
) )
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
metadata.drop_all(engine) metadata.drop_all(engine)
metadata.create_all(engine) metadata.create_all(engine)
else: else:
return bonobo.run(graph, services=services) raise NotImplementedError('I do not understand.')
if __name__ == '__main__': if __name__ == '__main__':
main() main()