|
|
před 5 roky | |
|---|---|---|
| __pycache__ | před 5 roky | |
| core | před 5 roky | |
| .gitignore | před 5 roky | |
| clonedb.py | před 5 roky | |
| readme.md | před 5 roky | |
| requirements.txt | před 5 roky | |
| settings.yml.dist | před 5 roky |
Script de clonage des bases de données MySql
Usage:
python3 clonedb.py [-v] [-y] [<opname>...]
python3 clonedb.py (-h | --help)
python3 clonedb.py --version
Options:
-y, --yes Do not ask for confirmation
-h --help Show this screen.
--version Show version.
requiert python 3.6+ et mysql:
sudo apt-get install python3 python3-pip mysql-client
git clone https://gitlab.2iopenservice.com/olivier/clonedb
cd clonedb
pip3 install -r requirements.txt
Pour configurer les opérations de clônage, ouvrez le fichier settings.yml.
La structure du fichier est la suivante:
servers:
[server_name]:
host: localhost
description: ...
mysql:
port: 3306
username: user
password: my_password
ssh:
key_file: ~/.ssh/id_rsa
port: 22
user: user
operations:
[op_name]:
dbname: my_db
from_server: [server_name]
to_server: [server_name]
is_default: True
ignore_tables: []
ignore_views: []
structure_only: []
compress: True
filter_tables: []
Ajouter une entrée dans la section servers pour
le serveur d'origine et le serveur cible de l'opération de clônage.
NB: Si le serveur est un docker, renseignez
hostde la manière suivante:docker:[docker_name]
On peut ajouter une courte description, par exemple "Prod", ou "Test"
Pour chaque serveur, ajouter une section mysql dans laquelle
devront apparaitre les paramètres de connexion au serveur mysql:
port, username, password
Si l'accès au serveur doit passer par un tunnel SSH, ajouter
une section ssh, dans laquelle
pourront apparaitre les paramètres de connexion SSH:
key_file (chemin d'accès à la clé privée ssh), port, user
Les noms donnés à chaque serveur (
[server_name]) n'ont pas d'importance
Ensuite, ajouter une entrée dans la section operations et définir au moins les trois paramètres suivants:
On pourra aussi ajouter les paramètres suivants:
is_default: l'opération sera lancée par défaut, losque clonedb est lancé sans l'argument <opname>compress: compresse les dumps du serveur source; diminue le volume de données mais augmente la charge du serveur source,ignore_tables: liste de noms de tables ou d'expressions régulières, les tables correspondantes seront ignoréesstructure_only: liste de noms de tables ou d'expressions régulières, seule la structure des tables
correspondantes sera clonée, pas les données contenues.ignore_views: liste de noms de tables ou d'expressions régulières, les vues correspondantes seront ignoréesfilter_tables: liste de noms de tables ou d'expressions régulières; si une liste est donnée,
seules les tables correspondantes seront traitées.The user specified as a definer ('username'@'%') does not exist: add a user account
to the targeted mysql server named username@% with admin privileges