blob: a269f5d2e778d4246f04868fd16498c4224310dd [file] [log] [blame]
James E. Blaireff5a9d2017-06-20 00:00:37 -07001:title: SQL Driver
2
3SQL
4===
5
6The SQL driver supports reporters only. Only one connection per
James E. Blair83786d42017-08-04 08:43:59 -07007database is permitted.
James E. Blaireff5a9d2017-06-20 00:00:37 -07008
James E. Blair83786d42017-08-04 08:43:59 -07009Connection Configuration
10------------------------
James E. Blaireff5a9d2017-06-20 00:00:37 -070011
James E. Blair83786d42017-08-04 08:43:59 -070012The connection options for the SQL driver are:
13
14.. attr:: <sql connection>
15
16 .. attr:: driver
17 :required:
18
19 .. value:: sql
20
21 The connection must set ``driver=sql`` for SQL connections.
22
23 .. attr:: dburi
24 :required:
25
26 Database connection information in the form of a URI understood
27 by SQLAlchemy. See `The SQLAlchemy manual
28 <http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#database-urls>`_
29 for more information.
James E. Blaireff5a9d2017-06-20 00:00:37 -070030
Joshua Hesketh7ab7c632017-10-16 15:03:26 +110031 The driver will automatically set up the database creating and managing
32 the necesssary tables. Therefore the provided user should have sufficient
33 permissions to manage the database. For example:
34
35 .. code-block:: sql
36
37 GRANT ALL ON my_database TO 'my_user'@'%';
38
Joshua Hesketh9322b0e2017-10-16 15:09:48 +110039 .. attr:: pool_recycle
40 :default: 1
41
42 Tune the pool_recycle value. See `The SQLAlchemy manual on pooling
43 <http://docs.sqlalchemy.org/en/latest/core/pooling.html#setting-pool-recycle>`_
44 for more information.
45
James E. Blaireff5a9d2017-06-20 00:00:37 -070046Reporter Configuration
47----------------------
48
49This reporter is used to store results in a database.
50
51A :ref:`connection<connections>` that uses the sql driver must be
52supplied to the reporter.
53
James E. Blair83786d42017-08-04 08:43:59 -070054``zuul.conf`` contains the database connection and credentials. To
55store different reports in different databases you'll need to create a
56new connection per database.
James E. Blaireff5a9d2017-06-20 00:00:37 -070057
James E. Blair83786d42017-08-04 08:43:59 -070058The SQL reporter does nothing on :attr:`pipeline.start` or
59:attr:`pipeline.merge-failure`; it only acts on
60:attr:`pipeline.success` or :attr:`pipeline.failure` reporting stages.
61
62For example:
63
64.. code-block:: yaml
65
66 - pipeline:
67 name: post-merge
68 success:
James E. Blaird5e29562017-08-04 09:48:59 -070069 mydb_conn:
James E. Blair83786d42017-08-04 08:43:59 -070070 failure:
James E. Blaird5e29562017-08-04 09:48:59 -070071 mydb_conn:
James E. Blair83786d42017-08-04 08:43:59 -070072
73.. attr:: pipeline.<reporter>.<sql source>
74
James E. Blaird5e29562017-08-04 09:48:59 -070075 To report to a database, add a key with the connection name and an
76 empty value to the desired pipeline :ref:`reporter<reporters>`
77 attributes.