sql >> Databasteknik >  >> RDS >> Mysql

Laravel 5:kör migrering på servermiljö, inte lokal

Du kan inte köra några fjärrkommandon på din lokala artisan . Allt du kör där kommer bara att fungera lokalt (även om du ställer in ENV). variabel).

Ställa in ENV variabel är bara för att tala om för applikationen att bete sig som om den är i den miljön. Men säger inte åt artisan att använda fjärrproduktionsmiljön.

Om du vill köra kommandon på din produktionsserver föreslår jag att du tittar på Envoy . Det är ett helt fristående projekt (och behöver inte endast användas med Laravel-projekt) och är specifikt för distribution.

Det är i princip ett tunt omslag runt SSHing till din fjärrserver och sedan köra kommandon. Ett exempel på Envoy.blade.php fil på mina webbplatser kan se ut så här:

@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

Denna SSH sätts in, sätter applikationen i underhållsläge, drar den nya koden, gör de olika "nya koden"-inställningar som kompositörinstallation, migrering, etc. och drar sedan applikationen ur underhållsläge.




  1. Installera Laravel på Ubuntu med stöd för Apache, MariaDB och PHP

  2. Undertrycker PDO-varningar

  3. Är OraOLEDB-leverantören i .NET opålitlig på CLOB-fält?

  4. MySQL LOAD_FILE returnerar NULL