muppy.io
Search
K

pg_restore Callback Task

Présentation

Muppy vous permet de modifier le processus de restauration des pg_dumps à l'aide de Task d'un type particulier nommé pg_restore Callback Task.
Ces callbacks ont été conçues pour permettre d'automatiser le type d'opérations suivantes:
  • Modifier les caractéristiques d'un User juste après sa création
  • Modifier un schéma après la création de la base et avant la restauration
  • Anonymiser une base de données juste après la restauration
Les pg_restore Callback Task sont des Muppy Tasks qui sont appelées à chaque étape du processus de restauration des Databases.
Les pg_restore Callback Task ont une signature particulière, un paramètre step permet d'indiquer à quelle étape du processus de restauration elles sont invoquées.

Exemple de pg_restore Callback Task

@fabric_task()
def template_pg_restore_callback(
cnx, host_obj,
step:str,
pg_cluster_obj:OdooModelType,
pg_dump_obj:OdooModelType=None,
pg_dump_file_path:str=None,
db_name:str=None,
db_comment:str=None,
db_owner:str=None,
_imq_logger=None
):
""" Template pg_restore callback
:param step: The pg_restore step whose end triggered this task:
any of 's3_download', 'create_user', 'drop_db', 'create_db', 'pg_restore'.
:param pg_cluster_obj: Cluster on which the dump will be restored.
:param pg_dump_obj: The Muppy pg_dump object that will be restored.
:param pg_dump_file_path: Full path of the pg_dump that will be restored.
:param db_name: Name of the database to restore.
:param db_comment: Comment that will be set at restore.
:param db_owner: User owner of the database.
:returns: something or False
"""
odoo_env = host_obj.env
_task_logger = _imq_logger or _logger
# ...

Mise en oeuvre

Les callbacks peuvent être définies à différents niveaux:
  • L'objet "PostgreSQL Database" permet de définir un callback qui sera proposée comme valeur par défaut dans le Wizard "Backup Databases".
  • Le Wizard "Backup Databases" permet de définir un callback qui sera stockée dans l'objet pg_dump et qui sera proposée comme valeur par défaut lors de la restauration d'un pg_dump.
  • Le Wizard "Restore PostgreSQL Databases" permet de forcer la callback à utiliser lors du Restore. Si aucun Callback n'est précisée au niveau du Wizard, c'est le Callback définie au niveau du pg_dump qui est utilisée.
  • Le Wizard "Copy Databases (using pg_dump)" permet de définir le callback qui sera utilisée lors du Restore.