aiida.manage.external package#
User facing APIs to control AiiDA from the verdi cli, scripts or plugins
Subpackages#
Submodules#
Provides an API for postgres database maintenance tasks.
This API creates and drops postgres users and databases used by the
verdi quicksetup
commandline tool. It allows convenient access to this
functionality from within python without knowing details about how postgres is
installed by default on various systems. If the postgres setup is not the
default installation, additional information needs to be provided.
- class aiida.manage.external.postgres.Postgres(dbinfo=None, **kwargs)[source]#
Bases:
pgsu.PGSU
Adds convenience functions to
pgsu.PGSU
.- Provides convenience functions for
creating/dropping users
creating/dropping databases
etc.
Example:
postgres = Postgres() postgres.create_dbuser('username', 'password') if not postgres.db_exists('dbname'): postgres.create_db('username', 'dbname')
- __module__ = 'aiida.manage.external.postgres'#
- check_db(dbname)[source]#
Looks up if a database with the name exists, prompts for using or creating a differently named one.
- Parameters
dbname (str) – Name of the database to be created or reused.
- Returns
tuple (dbname, created)
- check_dbuser(dbuser)[source]#
Looks up if a given user already exists, prompts for using or creating a differently named one.
- Parameters
dbuser (str) – Name of the user to be created or reused.
- Returns
tuple (dbuser, created)
- create_dbuser_db_safe(dbname, dbuser, dbpass)[source]#
Create DB and user + grant privileges.
Prompts when reusing existing users / databases.
- db_exists(dbname)[source]#
Check wether a postgres database with dbname exists
- Parameters
dbname (str) – Name of the database to check for
- Returns
(bool), True if database exists, False otherwise
- property dbinfo#
Alias for Postgres.dsn.
- dbuser_exists(dbuser)[source]#
Find out if postgres user with name dbuser exists
- Parameters
dbuser (str) – database user to check for
- Returns
(bool) True if user exists, False otherwise
- drop_db(dbname)[source]#
Drop a database in postgres
- Parameters
dbname (str) – Name of the database.
- drop_dbuser(dbuser)[source]#
Drop a database user in postgres
- Parameters
dbuser (str) – Name of the user to be dropped.
- classmethod from_profile(profile: Profile, **kwargs)[source]#
Create Postgres instance with dbinfo from AiiDA profile data.
- Note: This only uses host and port from the profile, since the others are not going to be relevant for the
database superuser.
- Parameters
profile – AiiDA profile instance
kwargs – keyword arguments forwarded to PGSU constructor
- Returns
Postgres instance pre-populated with data from AiiDA profile
- property host_for_psycopg2#
Return correct host for psycopg2 connection (as required by regular AiiDA operation).
- property port_for_psycopg2#
Return port for psycopg2 connection (as required by regular AiiDA operation).