2016-03-03 2 views
2

Я установил расширение для Yii2 dektrium/yii2-user, используя композитор, используя раздел «require». Это расширение содержит миграции для базы данных. Можно ли применять миграции из этого расширения с использованием синтаксиса консоли не нравится:Как применять приложения, распространяемые с расширений Yii2

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

но запускать все миграции автоматически с помощью простой команды, как:

php yii migrate 

Можно сказать композитор, где бетонное расширение содержит его миграции?

+0

yii migrate только учитывайте миграцию, которую у вас есть в папке с консолью/миграцией –

+0

Я нашел лучшее решение, которое я описал ниже. благодаря! – bfday

ответ

0
+0

Я бы поднял ваш ответ, если бы вы просто не разместили ссылку! Вот как работает SO. Подумайте, что ссылка сломается в какое-то время. Тогда ваш ответ бесполезен. – robsch

2

Я нашел только один хорошее решение - Установить yii2 расширение https://github.com/dmstr/yii2-migrate-command

Теперь я могу легко использовать команду «PHP Yii мигрируют» и не беспокоиться, что кто-то из моей команды не требуется применять миграции.

Спасибо другим за помощь! Если вы найдете более подходящие решения, пожалуйста, поделитесь:)

0

Если вы хотите, чтобы этот процесс был автоматизирован, вы можете использовать scripts property of 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 
} 

Я предпочитаю, чтобы сохранить все команды, которые должны быть запущены после установки -OR update- на файл (например, файл с именем 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 install или composer update, все команды будут запущены (и это полезно для совместной работы).

Смежные вопросы