2016-03-03 26 views
2

我已經使用composer使用它的「require」部分安裝了Yii2 dektrium/yii2-user的擴展。該擴展包含數據庫的遷移。是否有可能從這個擴展使用控制檯的語法不喜歡這樣的應用遷移:如何自動應用來自Yii2擴展的遷移

php yii migrate [email protected]/yii2-user/migrations 

而是通過一個簡單的命令像自動運行所有遷移:

php yii migrate 

是否有可能告訴作曲家在具體的擴展包含它的遷移?

+0

yii遷移只考慮您在控制檯/遷移文件夾中的遷移 –

+0

我找到了更好的解決方案,我在下面描述。謝謝! – bfday

回答

0
+0

我會upvote你的答案,如果你不只是發佈了一個鏈接!現在這是如何工作的。考慮一下這個鏈接會被破壞。那麼你的回答是無用的。 – robsch

2

我只找到一個很好的解決方案 - 安裝yii2擴展https://github.com/dmstr/yii2-migrate-command

現在我可以很容易地使用命令「PHP警予遷移」別擔心,從我的團隊的人不適用要求遷移。

感謝他人的幫助!如果你找到更合適的解決方案,請分享=)

0

如果你想使這個過程自動化,你可以使用scripts屬性composer。欲瞭解更多信息,你可以看到https://getcomposer.org/doc/articles/scripts.md。你的情況,你可以在composer.json像這樣的東西做你的目標:

{ 
// Some codes are here 
    "scripts": { 
     "post-update-cmd": [ 
      "php yii migrate [email protected]/yii2-user/migrations" 
     ], 
     "post-install-cmd": [ 
      "php yii migrate [email protected]/yii2-user/migrations" 
     ] 
    }, 
// Some codes are here 
} 

我寧願保存必須後運行的所有命令中的文件安裝 - 或最新情況:(名爲commands例如文件)中項目的根,是這樣的:

#!/usr/bin/env bash 

./yii migrate/up [email protected]/dektrium/yii2-user/migrations 
./yii migrate/up 
./yii migrate/up [email protected]/modules/rules/migrations 
./yii migrate/up [email protected]/modules/formsaz/migrations 
./yii migrate/up [email protected]/modules/todo/migrations 
./yii formsaz/rules/init 
./yii husky/rules/init 

composer.json文件把它的名字:

{ 
// Some codes are here 
    "scripts": { 
     "post-update-cmd": [ 
      "sh commands" 
     ], 
     "post-install-cmd": [ 
      "sh commands" 
     ] 
    }, 
// Some codes are here 
} 

所以以後每次composer installcomposer update,所有命令都將運行(並且對團隊協作很有用)。