Source code for catcher_modules.database.postgres

from catcher.steps.external_step import ExternalStep
from catcher.steps.step import update_variables

from catcher_modules.database import SqlAlchemyDb


[docs]class Postgres(ExternalStep, SqlAlchemyDb): """ Allows you to run queries in `Postgres <https://www.postgresql.org/>`_ :Input: :conf: postgres configuration. Can be a single line string or object. Dialect is not mandatory. **Required**. - dbname: name of the database to connect to - user: database user - host: database host - password: user's password - port: database port :query: query to run. **Deprecated since 5.2** :sql: query or sql file from resources to run. **Required** :Examples: Select all from test, use object configuration :: postgres: request: conf: dbname: test user: user password: password host: localhost port: 5433 sql: 'select count(*) from test' register: {documents: '{{ OUTPUT }}'} Run all commands from **resources/my_ddl.sql**, using string configuration :: postgres: request: conf: 'user:password@localhost:5432/test' sql: 'my_ddl.sql' Insert into test, using string configuration with dialect :: postgres: request: conf: 'postgresql://user:password@localhost:5432/test' sql: 'insert into test(id, num) values(3, 3);' """ @property def dialect(self) -> str: return "postgresql" @update_variables def action(self, includes: dict, variables: dict) -> any: body = self.simple_input(variables) return variables, self.execute(body, variables)