Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel 5 :exécutez les migrations sur l'environnement du serveur, pas en local

Vous ne pouvez exécuter aucune commande à distance sur votre artisan local . Tout ce que vous y exécutez ne fonctionnera que localement (même si vous définissez le ENV variable).

Réglage de l'ENV variable est juste pour dire à l'application de se comporter comme si elle était dans cet environnement. Mais ne dit pas à l'artisan d'utiliser l'environnement de production à distance.

Si vous souhaitez exécuter des commandes sur votre serveur de production, je vous suggère de consulter Envoy . Il s'agit d'un projet complètement autonome (et ne doit pas être utilisé uniquement avec des projets Laravel) et est spécifiquement destiné au déploiement.

Il s'agit essentiellement d'un mince wrapper autour de SSH sur votre serveur distant, puis d'exécuter des commandes. Un exemple Envoy.blade.php fichier sur mes sites pourrait ressembler à ceci :

@servers(['web' => '[email protected]'])

@task('deploy')
    cd ~/src

    php artisan down
    git pull origin master

    composer install --no-dev --no-progress --prefer-dist
    php artisan migrate --force --no-interaction
    php artisan optimize
    php artisan up
@endtask

Ce SSH entre, met l'application en mode maintenance, extrait le nouveau code, effectue les différentes configurations du "nouveau code" comme l'installation du compositeur, la migration, etc., puis sort l'application du mode maintenance.