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.
Last updated