Comment faire pour automatiser la migration (schéma et données) pour PHP/MySQL application
J'ai une application en PHP/MySQL. Je suis à la recherche d'un moyen automatisé de la mise à niveau de la base de données derrière l'application.
Je n'ai pas besoin d'avoir la compatibilité avec les anciennes versions une fois qu'il est mis à jour.
J'ai lu jeff et K. Scott Allen articles sur ce.
Je ne suis toujours pas sûr de savoir comment mettre en œuvre ce pour un PHP/MySQL application.
Est-il simple et de bon de ce processus?
Vous devez vous connecter pour publier un commentaire.
J'ai un "Schéma" de l'objet que j'utilise - mais vous pourriez faire la même chose sans classes..
Ce que vous voulez faire est de créer un "
db_schema_versions
table:Après votre base de données peut retrouver la version # c'est sur qu'il peut faire, SQL automatiquement les mises à niveau.
Vous devez verrouiller votre schéma de la table tandis que la mise à niveau du schéma. De cette façon, vous n'aurez pas deux demandes en même temps essayer de mettre à niveau votre schéma.
Soi - garder une trace de la version de mise à niveau à partir d' - construire un gros switch - quelque chose comme ceci:
Similaire à gnarf la suggestion j'irait avec les éléments suivants:
Maintenant, vous devez écrire un script simple qui fonctionne de la façon suivante:
J'espère qu'un sens
cat /some/deployment-file.sql | mysql ...
pourrait être utiliséEssayez d'utiliser cet outil pour le schéma de migration: https://github.com/idler/MMP/
J'ai créé un petit script de migration de MySQL en PHP. Il est bon à un stade précoce, de projets et de ceux n'ayant pas (encore) la plus complexe des scripts de migration. https://github.com/kennberg/php-mysql-migrate
Une façon, vous pouvez aller à ce sujet est de faire un dump de la base de données en un grand fichier sql à l'aide de la commande mysqldump. Il suffit de prendre le fichier source et dans la nouvelle installation.
Vous ne pouvez pas. Vous
Écrire des fichiers de mise à jour avec toutes les sql qui ont été exécutés sur la source de l'environnement, puis de les exécuter (mentionné ci-dessus), SVN-comme. Besoin d'un script php pour l'exécution et le travail manuel pour sql écrit
Post-analyser à la fois les environnements et de proposer à l'utilisateur les mises à jour qui devraient être migrés. Fondamentalement la même chose que le premier, sauf que vous avez un grand pas pour la migration, pas beaucoup de petits morceaux. Contrairement à peut analyser les diffrences pour les deux schémas et des données.
Vous pouvez également utiliser une API gratuite SqlQuerySync
ou créer vous-même une table de base de données gestion de CRÉER /MODIFIER /SUPPRIMER des requêtes.
Utilisation migratedb https://github.com/malukenho/MigrateDB de @malukenho
MySQL banc de logiciel (qui peut être trouvé sur le site web de mysql) est-ce que. Elle implique répétitif clicky étapes même si.
J'ai eu le même objectif : la migration d'une base de données (plus d'un million de lignes dans certains tableaux). Je pense utiliser https://phinx.org qui semble bon à traiter avec le schéma de migration, en outre, il est livré avec restauration option pour plus de sécurité.
Vous pouvez essayer cette bibliothèque: mysql-contrôle de version.
Je l'aime parce qu'il établit une distinction entre schéma, les données de base et données de test. Mais il le fait dans un sens, c'est encore vraiment facile à utiliser.