La génération de migration de base de données existant dans Yii ou Laravel
Je suis en train de travailler sur un projet qui est assez complexe de base de données (150+ tables). Afin d'être en mesure de maintenir les changements, j'ai décidé d'ajouter des migrations, de préférence à l'aide de Yii ou Laravel.
Quelqu'un sait si il est possible de générer une migration initiale à partir d'une base de données existante?
De le créer à la main:
- prendre pour toujours et
- être très enclin à l'erreur.
Si il n'y a aucun moyen, quelqu'un connait un bon en PHP cadre, qui prend en charge ces fonctionnalités?
Il n'y a pas un moyen automatisé de transformer une base de données existante dans laravel tables.
OriginalL'auteur DamirDiz | 2012-11-28
Vous devez vous connecter pour publier un commentaire.
Instructions pour la réalisation de ce dans Yii:
Ajouter à votre base de données les paramètres de connexion à
protected/config/console.php
.Exécuter
yiic migrate create initial
pour créer le bout de code pour la migration.Copier le contenu de ce gist à
protected/commands/InitialDbMigrationCommand.php
.Exécuter
yiic initialdbmigration 'name_of_your_database' > initial_migration.php
pour générerup()
etdown()
méthodes pour la première migration de base de données.Copiez et collez
up()
etdown()
méthodes deinitial_migration.php
pour le fichier créé dans leprotected/migrations
dossier à l'étape 2.OriginalL'auteur bmarston
'La Doctrine De Projet' (aka Doctrine) a la possibilité de créer DB migrations de base de données existante de structures, de sorte que vous pouvez recréer la structure existante. Il peut être facilement mis en œuvre dans Symfony, Laravel, également dans Yii et de nombreux cadres de.
De l'échantillon à partir de:
http://symfony.com/legacy/doc/doctrine/1_2/en/07-Migrations
OriginalL'auteur SuperDuck
Bien depuis la migration est sur la configuration de votre base de données de structure et d'y apporter des modifications, de ne pas réfléchir à une base de données en cours il n'existe pas de telle façon.
Et ce n'est pas une étape que vous avez à faire. Vous pouvez commencer à partir de là où vous êtes en ce moment, ce qui vous permettra de restauration jusqu'à ce point. Ce qui signifie que vous pouvez effectuer la migration de vos tables actuelles sans avoir à préciser leur structure entière, mais seulement les changements.
Disons que vous avez une table appelée utilisateur et souhaitez ajouter leur prénom.
Maintenant, allez dans
application/migrations
et de trouver le fichier de migration, ajouter ceMaintenant, vous pouvez ajouter migrer
.. et de restauration à l'aide de
Cela permettra d'ajouter ou de supprimer la colonne firstname, sans affecter votre table de toute autre manière.
Il serait assez sympa...d'Autres cadres de le faire (comme CakePHP) et la raison en est qu'il est BEAUCOUP plus facile de construire votre schéma dans quelque chose comme MySQL Workbench, etc. Mais il est BEAUCOUP plus facile de construire votre schéma en PHP si vous prévoyez sur l'évolution des bases de données (de sorte qu'il est agnostique). Il y a cette formule: github.com/JeffreyWay/Laravel-4-Generators ... ce Qui rend les choses beaucoup plus agréable (ajoute quelques CakePHP comme la fonctionnalité de Laravel).
Et ce qui est si mal à exporter le schéma dans un outil comme mysql workbench et le chargement de ce script initialement, lors de la mise en place d'un nouvel environnement (peut-être même à l'intérieur de la première migration)? Et après que commencer à utiliser les migrations.
OriginalL'auteur Niklas Modess
Ici est un Laravel paquet que j'ai créé qui fait exactement cela. Il génère automatiquement propre et précis Laravel les migrations à partir de votre base de données existante.
Comme il ne veut pas faire d'hypothèses de la base de données, il devrait fonctionner sur n'importe quelle structure de base de données tout en maintenant l'indice d'origine et les noms des clés étrangères.
https://github.com/Xethron/migrations-generator
OriginalL'auteur Xethron
Comme pour Yii 1.x, schmunk a créé un merveilleux
base de données de la commande
yiic commande.Cette commande ne couvre que les migrations. Vous devez écrire votre propre vers le bas migrations.
Pour l'utiliser:
Obtenir la version la plus récente à partir de GitHub et mettre son contenu dans
/protected/commands
dossier (en créer un, si elle n'existe pas). Notez que vous avez besoin de mettre le contenu comme (sans sous-dossier pour cette commande), ce qui est contraire à ce que nous faisons par exemple pour les extensions.Renommer
EDatabaseCommand.php
fichier (et de classe à l'intérieur) àDatabaseCommand.php
, si vous souhaitez utiliseryiic database
de commande (comme expliqué dans les docs). Sans ce correctif, vous devez utiliseryiic edatabase
commande, comme il y a une légère incohérence entre les documents et le code (au moins dans la version la plus récente, de la rédaction du présent; peut-être schmunk va résoudre ce problème).Avoir cela, accédez à l'
protected
dossier dans votre console et exécuteryiic database dump migration_name --prefix=table_name
.Cela va créer une migration
protected/runtime/migration_name.php
fichier avec la bonne date et l'heure en début de nom de fichier, rempli avec une série deCDbMigration
commandes de recréer votre schéma de base de données. Visite "L'utilisation de la" dans la section docs pour en savoir plus sur la personnalisation de la commande.OriginalL'auteur trejder
- Je utiliser les deux Yii et Laravel et je ne pouvais pas trouver ce dont vous avez besoin pour l'un d'eux. Ils ont à la fois de créer des fichiers vides et vous avez besoin pour créer le script de migration de vous-même.
Pour une table de 150 tableaux, il sera le défi de créer les migrations de vous-même, mais il n'est pas aussi difficile que vous l'imaginez. Parce que vous avez déjà de l'information sur les champs, il ne devrait pas prendre aussi longtemps pour créer.
Merci de partager :), j'aimerais prendre un coup d'oeil. Expecially en Yii.
OriginalL'auteur Mihai P.
Après avoir fait quelques recherches, voici ce que vous allez avoir besoin pour Laravel: https://github.com/XCMer/larry-four-generator
(version 4 au moins, qui sait combien de temps cela va fonctionner, Laravel changements trop rapides et trop nombreuses modifications importantes)
Vous devrez exécuter
php artisan larry:fromdb
et il va vous montrer les tables...Vous pouvez également exclure ou de ne traiter que certaines tables (voir le readme).Encore une fois, super super utile si vous voulez construire votre schéma dans quelque chose comme MySQL Workbench. J'ai aussi vu mention d'une trousse d'analyser le workbench fichiers...Mais le lien était mort.
Vous pouvez également utiliser ce larry paquet avec: https://github.com/JeffreyWay/Laravel-4-Generators
Vous pouvez ensuite créer des échafaudages à la CakePHP style.
Sinon, essayez ce package: https://github.com/barryvdh/laravel-migration-generator
OriginalL'auteur Tom
Il y en a un maintenant pour Yii:
Cela permet à une équipe composée de facilement mettre à jour la db localement, puis de diffuser les mises à jour avec toi d'autres développeurs automatiquement avec le reste du code par l'intermédiaire d'un système de contrôle de version (j'ai utilisé git). Il effectue également une première db dump xml et un fichier de migration.
d'accueil du projet:
https://code.google.com/p/yii-automatically-generated-migration-files/
code source:
https://code.google.com/p/yii-automatically-generated-migration-files/source/checkout
J'ai créé à partir de zéro comme je l'ai été agacé par le fait que j'ai dû le faire manuellement, afin de le distribuer aux membres de mon équipe.
Espère que cela aide!
N'hésitez pas à partager des bugs, des améliorations et des commentaires.
OriginalL'auteur Ponte
Je pense que la réponse est: https://github.com/jamband/yii2-schemadump pour Yii2
"Cette commande pour générer le schéma à partir d'une base de données existante."
OriginalL'auteur Yorty Ruiz