:py:mod:`airflow.providers.sqlite.operators.sqlite`
===================================================

.. py:module:: airflow.providers.sqlite.operators.sqlite


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.sqlite.operators.sqlite.SqliteOperator




.. py:class:: SqliteOperator(*, sql, sqlite_conn_id = 'sqlite_default', parameters = None, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   Executes sql code in a specific Sqlite database

   .. seealso::
       For more information on how to use this operator, take a look at the guide:
       :ref:`howto/operator:SqliteOperator`

   :param sql: the sql code to be executed. Can receive a str representing a
       sql statement, a list of str (sql statements), or reference to a template file.
       Template reference are recognized by str ending in '.sql'
       (templated)
   :param sqlite_conn_id: reference to a specific sqlite database
   :param parameters: (optional) the parameters to render the SQL query with.

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['sql']

      

   .. py:attribute:: template_ext
      :annotation: :Sequence[str] = ['.sql']

      

   .. py:attribute:: template_fields_renderers
      

      

   .. py:attribute:: ui_color
      :annotation: = #cdaaed

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



