blob: b9ce24bc9b10c2f58b46da7917b69d6920a71d36 [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
Tobias Henkel94a1d082017-12-09 12:24:52 +010046 .. attr:: table_prefix
47 :default: ''
48
49 The string to prefix the table names. This makes it possible to run
50 several zuul deployments against the same database. This can be useful
51 if you rely on external databases which you don't have under control.
52 The default is to have no prefix.
53
James E. Blaireff5a9d2017-06-20 00:00:37 -070054Reporter Configuration
55----------------------
56
57This reporter is used to store results in a database.
58
59A :ref:`connection<connections>` that uses the sql driver must be
60supplied to the reporter.
61
James E. Blair83786d42017-08-04 08:43:59 -070062``zuul.conf`` contains the database connection and credentials. To
63store different reports in different databases you'll need to create a
64new connection per database.
James E. Blaireff5a9d2017-06-20 00:00:37 -070065
James E. Blair83786d42017-08-04 08:43:59 -070066The SQL reporter does nothing on :attr:`pipeline.start` or
67:attr:`pipeline.merge-failure`; it only acts on
68:attr:`pipeline.success` or :attr:`pipeline.failure` reporting stages.
69
70For example:
71
72.. code-block:: yaml
73
74 - pipeline:
75 name: post-merge
76 success:
James E. Blaird5e29562017-08-04 09:48:59 -070077 mydb_conn:
James E. Blair83786d42017-08-04 08:43:59 -070078 failure:
James E. Blaird5e29562017-08-04 09:48:59 -070079 mydb_conn:
James E. Blair83786d42017-08-04 08:43:59 -070080
81.. attr:: pipeline.<reporter>.<sql source>
82
James E. Blaird5e29562017-08-04 09:48:59 -070083 To report to a database, add a key with the connection name and an
84 empty value to the desired pipeline :ref:`reporter<reporters>`
85 attributes.