Source code for catcher_modules.database.sqlite
from catcher.steps.external_step import ExternalStep
from catcher.steps.step import update_variables
from catcher_modules.database import SqlAlchemyDb
[docs]class SQLite(ExternalStep, SqlAlchemyDb):
"""
Allows you to create `SQLite <https://www.sqlite.org/index.html>`_ database on your local filesystem and work with
it.
**Important** - for relative path use one slash `/`. For absolute slash - two `//`.
:Input:
:conf: sqlite path string. Dialect is not mandatory. **Required**.
:query: query to run. **Deprecated since 5.2**
:sql: query or sql file from resources to run. **Required**
:Examples:
Select all from test, use relative path
::
sqlite:
request:
conf: '/foo.db'
sql: 'select count(*) as count from test'
register: {documents: '{{ OUTPUT }}'}
**Note** that we alias count. For some reason sqlalchemy for sqlite will return `count(*)` as a column name
instead of `count`.
Insert into test, using string absolute path (with 2 slashes)
::
sqlite:
request:
conf: '//absolute/path/to/foo.db'
sql: 'insert into test(id, num) values(3, 3);'
"""
@property
def dialect(self) -> str:
return "sqlite"
@update_variables
def action(self, includes: dict, variables: dict) -> any:
body = self.simple_input(variables)
return variables, self.execute(body, variables)