Yoyo-migrations est un utilitaire base de données de migration de schéma à l'aide SQL plaine et la DB-API.
Qu'est-ce-migrations Yoyo faire?
Comme les applications de base de données évoluent, des modifications au schéma de base de données sont souvent nécessaires. Ceux-ci peuvent généralement être écrites comme des scripts SQL ponctuelles contenant CREATE / ALTER TABLE (bien que ne importe quel script SQL ou python peut être utilisé avec yoyo-migrations).
Yoyo-migrations fournit un outil de ligne de commande pour la lecture d'un répertoire de ces scripts et les appliquer à votre base de données si nécessaire.
le soutien de base de données
Bases de données PostgreSQL, MySQL et SQLite sont pris en charge.
Usage
Yoyo-migrations est habituellement invoquée pour un script de ligne de commande.
Exemples:
Lire toutes les migrations des migrations d'annuaire et de les appliquer à une base de données PostgreSQL:
yoyo-migrate applique ./migrations/ postgres: // user: password @ localhost / base de données
migrations Rollback précédemment appliqués à une base de données MySQL:
yoyo-migrate rollback ./migrations/ mysql: // user: password @ localhost / base de données
Renouveler l'application (ce est à dire rollback puis appliquer à nouveau) les migrations vers une base de données SQLite à l'emplacement /home/sheila/important-data.db:
yoyo-migrer sqlite réappliquer ./migrations/: ////home/sheila/important-data.db
Par défaut, yoyo-migrations commence dans un mode interactif, vous invite pour chaque fichier de migration avant de l'appliquer, ce qui rend facile de choisir les migrations à appliquer et restauration.
Le répertoire des migrations doit contenir une série de scripts de migration. Chaque script de migration est un fichier python (.py) contenant une série d'étapes. Chaque étape doit comprendre une requête de migration et (éventuellement) une requête d'annulation. Par exemple:
#
# Fichier: migrations / 0001.create-foo.py
#
l'étape (
& Nbsp; "CREATE TABLE foo (id INT, bar VARCHAR (20), PRIMARY KEY (id))",
& Nbsp; "DROP TABLE foo",
)
Le nom de fichier de chaque fichier (sans l'extension .py) est utilisé comme identifiant pour chaque migration. Les migrations sont appliquées dans le nom de fichier ordre, il est donc utile de nommer vos fichiers en utilisant une date (par exemple «20090115-xyz.py ') ou avec un autre numéro incrémenté.
yoyo-migrate crée une table dans votre base de données cible, _yoyo_migration, pour suivre les migrations qui ont été appliquées.
Des mesures peuvent également prendre une option ignore_errors argument, qui doit être l'un des appliquer, la restauration, ou la totalité. Si dans l'exemple précédent la table foo aurait déjà été créé par un autre moyen, nous pourrions ajouter ignore_errors = 'appliquer' à l'étape pour permettre les migrations de continuer indépendamment:
#
# Fichier: 0001.create-foo.py
#
l'étape (
& Nbsp; "CREATE TABLE foo (id INT, bar VARCHAR (20), PRIMARY KEY (id))",
& Nbsp; "DROP TABLE foo",
& Nbsp; ignore_errors = 'appliquer',
)
Des mesures peuvent également être python objets appelables qui prennent une connexion de base de données comme leur seul argument. Par exemple:
#
# Fichier: 0002.update_keys.py
#
def do_step (conn):
& Nbsp; curseur = conn.cursor ()
& Nbsp; cursor.execute (
& Nbsp; "INSERT INTO sysinfo"
& Nbsp; »(osname, nom d'hôte, la libération, la version arcade)"
& Nbsp; "VALUES (% s,% s,% s,% s,% s% s)",
& Nbsp; os.uname ()
& Nbsp;)
l'étape (do_step)
la sécurité du mot de passe
Vous spécifiez normalement votre nom d'utilisateur et mot de passe base de données dans le cadre de la chaîne de connexion de base de données sur la ligne de commande. Sur une machine multi-utilisateur, d'autres utilisateurs peuvent voir votre mot de passe de base de données dans la liste des processus.
Le -p ou --prompt mot de passe drapeau provoque yoyo-migrate pour demander un mot de passe, en ignorant tout mot de passe spécifié dans la chaîne de connexion. Ce mot de passe ne sera pas disponible à d'autres utilisateurs via la liste des processus du système.
Chaîne Connexion cache
La première fois que vous exécutez yoyo-migrer sur un nouveau jeu de migrations, il vous sera demandé si vous souhaitez mettre en cache la chaîne de connexion de base de données dans un fichier appelé .yoyo-migrer dans le répertoire des migrations.
Ce cache est local pour le répertoire des migrations, afin exécutions ultérieures sur le même ensemble de migration ne ont pas besoin de la chaîne de connexion de base de données à préciser.
Cette sauvegarde, évite votre nom d'utilisateur de base de données et mot de passe démontrant dans les listes de processus et diminue le risque d'exécuter accidentellement yoyo-migrer sur la mauvaise base de données (ce est à dire en exécutant à nouveau une entrée de yoyo-migrer plus tôt dans l'histoire de votre commande lorsque vous avez déménagé dans une répertoire différent).
Si vous ne voulez pas ce fichier de cache à utiliser, ajoutez le paramètre --no-cache pour les options de ligne de commande
Ce qui est nouveau dans cette version:.
- Correction d'une mauvaise gestion 4.2.3 de presse
Quoi de neuf dans la version 4.2.1:
- Correction pour la version précédente, qui a omis fichiers critiques.
Quoi de neuf dans la version 4.1.6:
- Ajout fenêtres support (merci à Peter Shinners)
Quoi de neuf dans la version 4.1.5:
- Configurer les gestionnaires d'exploitation afin que les causes de commutation -v sortie pour aller à la console (grâce à Andrew Nelis).
- `` commutateur de ligne de commande -v`` ne prend plus d'un argument, mais peut être spécifiée plusieurs fois à la place (ce est à dire l'utilisation `` -vvv`` au lieu de `` -v3``). `` --verbosity`` Conserve l'ancien comportement.
Quoi de neuf en version 4.1.3:
- défaut changé de nom de table de migration de retour à «_yoyo_migration '
Exigences :
- Python
Commentaires non trouvées