Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel 5:Führen Sie Migrationen in der Serverumgebung aus, nicht lokal

Sie können keine Remote-Befehle auf Ihrem lokalen artisan ausführen . Alles, was Sie dort ausführen, funktioniert nur lokal (selbst wenn Sie die ENV Variable).

Einstellen des ENV -Variable soll der Anwendung nur sagen, dass sie sich so verhalten soll, als ob sie in wäre diese Umgebung. Aber weist den Handwerker nicht an, die Remote-Produktionsumgebung zu verwenden.

Wenn Sie Befehle auf Ihrem Produktionsserver ausführen möchten, schlage ich vor, dass Sie sich Envoy ansehen . Es ist ein vollständig eigenständiges Projekt (und muss nicht nur mit Laravel-Projekten verwendet werden) und ist speziell für die Bereitstellung vorgesehen.

Es ist im Grunde ein dünner Wrapper, der SSH in Ihren Remote-Server umgibt und dann Befehle ausführt. Ein Beispiel Envoy.blade.php Datei auf meinen Seiten könnte so aussehen:

@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

Diese SSH-Verbindung, versetzt die Anwendung in den Wartungsmodus, zieht den neuen Code, führt die verschiedenen „neuen Code“-Setups wie Composer-Installation, Migration usw. durch und zieht dann die Anwendung aus dem Wartungsmodus.