Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Laravel 5:execute migrações no ambiente do servidor, não local


Você não pode executar nenhum comando remoto em seu artisan local . Qualquer coisa que você executar lá funcionará apenas localmente (mesmo se você definir o ENV variável).

Configurando o ENV variável é apenas dizer ao aplicativo para se comportar como se estivesse em aquele ambiente. Mas não diz ao artesão para usar o ambiente de produção remoto.

Se você deseja executar comandos em seu servidor de produção, sugiro que consulte Envoy . É um projeto completamente autônomo (e não precisa ser usado apenas com projetos Laravel) e é específico para implantação.

É basicamente um wrapper fino em torno de SSHing em seu servidor remoto e, em seguida, executando comandos. Um exemplo Envoy.blade.php arquivo em meus sites pode ser assim:
@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

Esse SSH entra, coloca o aplicativo no modo de manutenção, extrai o novo código, faz as várias configurações de 'novo código', como instalação do compositor, migração etc. e, em seguida, retira o aplicativo do modo de manutenção.