sql >> Database >  >> RDS >> Mysql

Laravel 5:voer migraties uit in een serveromgeving, niet lokaal

Je kunt geen commando's op afstand uitvoeren op je lokale artisan . Alles wat u daar uitvoert, werkt alleen lokaal (zelfs als u de ENV . instelt variabele).

De ENV instellen variabele is gewoon om de applicatie te vertellen dat het zich moet gedragen alsof het in is die omgeving. Maar vertelt ambachtslieden niet om de externe productieomgeving te gebruiken.

Als u opdrachten op uw productieserver wilt uitvoeren, raad ik u aan naar Envoy te kijken . Het is een volledig op zichzelf staand project (en hoeft niet alleen met Laravel-projecten te worden gebruikt) en is specifiek bedoeld voor implementatie.

Het is in feite een dunne wikkel rond SSHing naar uw externe server en voert vervolgens opdrachten uit. Een voorbeeld Envoy.blade.php bestand op mijn sites kan er als volgt uitzien:

@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

Deze SSH wordt ingevoerd, zet de applicatie in de onderhoudsmodus, haalt de nieuwe code op, voert de verschillende 'nieuwe code'-instellingen uit, zoals de installatie van de componist, migreert, enz. en haalt de applicatie vervolgens uit de onderhoudsmodus.




  1. SQL Join op null-waarden

  2. MySQL-juweeltje voor Ruby On Rails

  3. Hoe een Oracle PL/SQL-object supermethode aan te roepen

  4. Hoe OBJECTPROPERTY() werkt in SQL Server