Comment convertir Laravel migrations à raw scripts SQL?
Les développeurs de mon équipe sont vraiment utilisées pour l'alimentation de Laravel migrations, ils sont vraiment génial de travailler sur des machines locales et nos serveurs de dev.
Mais le client est administrateur de base de données ne sera pas accepter Laravel migrations. Il demande pour les matières premières, les scripts SQL pour chaque nouvelle version de notre application.
Est-il un outil ou une technique de programmation pour la capture de la sortie de Laravel les migrations vers le haut/bas de scripts SQL?
Il serait parfait si on pouvait intégrer le script SQL de génération de notre système CI (TeamCity) lors de la création de la production s'appuie.
Par la voie, nous serons à l'aide de Laravel 5 et PostgreSQL pour ce projet.
- Votre client administrateur de base de données est une pépite. Pouvez-vous ne pas aller autour de lui et il suffit d'exécuter l'Artisan de la CLI sur le serveur via SSH?
- Ouais, c'est ce que j'aimerais, aussi. Mais "le client a toujours raison", etc. Et je ne suis même pas sûr si elles ont de PHP sur la machine en cours d'exécution de leur base de données de production. Ou peut-être la DB admin est un maniaque du contrôle et veut voir SQL brut et du coup notre cul si il n'aime pas quelque chose.
- le client est toujours une pépite, et est parfois à droite.
Vous devez vous connecter pour publier un commentaire.
Utiliser le migrer commande
Vous pouvez ajouter la
--pretend
drapeau lorsque vous exécutezphp artisan migrate
à la sortie des requêtes à la terminale:Cela va ressembler à quelque chose comme ceci:
Pour enregistrer ce pour un fichier, il suffit de rediriger la sortie sans ansi:
Hack migrer commande
Pour personnaliser la façon d'obtenir les requêtes, considérer le piratage de la source et de faire votre propre commande personnalisée ou quelque chose comme ça. Pour vous aider à démarrer, voici quelques code pour obtenir tous les migrations.
Exemple de code
Exemple de sortie
Juste au cas où vous êtes confrontés au même problème que j'ai fait:
php artisan migrate --pretend
n'a pas de sortie de rien, mais l'exécute Sql sans l'ajout de l'enregistrement des migrations. En d'autres termes,
La raison pour laquelle il a été ma configuration avec plusieurs bases de données, qui sont traitées avec
Schema::connection('master')->create('...
Plus sur cette question que vous pouvez trouver ici:
https://github.com/laravel/framework/issues/13431
Malheureusement, Laravel développeur fermé la question, je cite "de Clôture depuis le problème semble être l'un des rares cas de bord qui peut être résolu avec une solution de contournement.", donc, il n'y a pas beaucoup d'espoir, il sera résolu de sitôt. Pour ma peut-être de rares cas, je vais utiliser un tiers SQL diff checker.
Acclamations
user2479930 code est grande, mais je voulais en venir:
J'ai réglé le problème et il fixe avec le texte suivant: