sql >> Base de Datos >  >> RDS >> Mysql

Laravel 5:ejecuta migraciones en un entorno de servidor, no local

No puede ejecutar ningún comando remoto en su artisan local . Cualquier cosa que ejecute allí solo funcionará localmente (incluso si configura el ENV variables).

Configuración del ENV variable es solo para decirle a la aplicación que se comporte como si estuviera en ese ambiente Pero no le dice a artesano que use el entorno de producción remota.

Si desea ejecutar comandos en su servidor de producción, le sugiero que consulte Envoy . Es un proyecto completamente independiente (y no tiene que usarse solo con proyectos de Laravel) y es específicamente para implementación.

Básicamente es un envoltorio delgado alrededor de SSH en su servidor remoto y luego ejecuta comandos. Un ejemplo Envoy.blade.php archivo en mis sitios podría verse así:

@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

Este SSH entra, pone la aplicación en modo de mantenimiento, extrae el código nuevo, realiza las diversas configuraciones de 'código nuevo' como la instalación del compositor, la migración, etc. y luego saca la aplicación del modo de mantenimiento.