伺服器上,資料庫是依賴 Migrations,還是直接導SQL,還是自己寫install。
vender 的是在伺服器上也用 composer 還是手動傳?
伺服器上也用 artisan/composer 嗎?
其他注意事項有什嗎?
回複內容:
伺服器上,資料庫是依賴 Migrations,還是直接導SQL,還是自己寫install。
vender 的是在伺服器上也用 composer 還是手動傳?
伺服器上也用 artisan/composer 嗎?
其他注意事項有什嗎?
在預發布環境從程式碼程式庫完整 clone 一份代碼到指定路徑,然後執行
composer install --prefer-dist --no-devcomposer dumpautoload --no-dev --optimize
然後通過 rsync 同步到生產環境
rsync -zr --exclude-from=${PROJECT_DIR}/.deploy/rsync.excludes ${PROJECT_DIR}/ production:${PROJECT_DIR}/
vendor 目錄裡有很多檔案並不需要發布到生產環境,可以設定一個忽略檔案清單:
.git/app/config/local/app/config/test/app/config/testing/app/config/pre-release/app/config/packages/**/local/app/config/packages/**/test/app/config/packages/**/pre-release/app/database/migrations/*app/database/seeds/*app/start/local.phpapp/start/test.phpapp/start/testing.phpapp/start/pre-release.phpapp/storage/cache/*app/storage/logs/*app/storage/sessions/*app/storage/views/*app/tests/*Test.phpapp/tests/**/*Test.phpvendor/**/tests/vendor/**/test/vendor/**/Tests/vendor/**/doc/vendor/**/notes/vendor/**/test-suite/vendor/**/*.mdvendor/**/READMEvendor/**/phpunit.xml.*vendor/**/.travis.ymlphpunit.xml
為了發布速度更快一些,可以先打包,然後再 scp 到生產環境。
這些工作都可用指令碼來自動完成,只需前期調試完善,後面發布就很輕鬆了。
直接composer。。。
composer部署便於以後升級
不上傳vender,用composer install方便
我覺得升級資料庫用 Migrations 不靠譜。比如,表結構變了,舊資料要匯入新表裡,這個怎麼用Migrations 實現?除了在 Migrations 寫匯入匯出邏輯,我想不到其他方法了。但這樣和自己寫指令碼沒啥區別了吧。
vender 還是直接 composer 吧。它就是幹這個活的。不過需要注意本地產生的 .lock 需要刪除。
伺服器上也用 artisan/composer。