/ / Jak atomatycznie zastosować migracje pochodzące z rozszerzeń Yii2 - yii2, yii2-extension

Jak atomatycznie zastosować migracje pochodzące z rozszerzeń Yii2 - yii2, yii2-extension

Zainstalowałem rozszerzenie dla Yii2 dektrium / yii2-user używanie kompozytu przy użyciu "wymagającej" sekcji To rozszerzenie zawiera migracje dla bazy danych. Czy jest możliwe zastosowanie migracji z tego rozszerzenia przy użyciu składni konsoli, która nie jest taka:

php yii migrate --migrationPath=@dektrium/yii2-user/migrations

ale uruchom wszystkie migracje automatycznie, używając prostego polecenia, takiego jak:

php yii migrate

Czy można powiedzieć kompozytorowi, gdzie konkretne rozszerzenie zawiera jego migracje?

Odpowiedzi:

2 dla odpowiedzi № 1

Znalazłem tylko jedno dobre rozwiązanie - zainstaluj rozszerzenie yii2 https://github.com/dmstr/yii2-migrate-command

Teraz mogę z łatwością użyć polecenia "php yii migrate" i nie martw się, że ktoś z mojego zespołu nie stosuje wymaganych migracji.

Dziękuję innym za pomoc! Jeśli znajdziesz bardziej odpowiednie rozwiązania, udostępnij =


1 dla odpowiedzi nr 2

Jeśli chcesz, aby proces ten był zautomatyzowany, możesz użyć scripts własność composer. Aby uzyskać więcej informacji, możesz zobaczyć https://getcomposer.org/doc/articles/scripts.md. W twoim przypadku możesz zrobić swój cel za pomocą czegoś takiego composer.json:

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

Wolę zapisywać wszystkie polecenia, które należy uruchomić po instalacji - lub aktualizacji - do pliku (na przykład o nazwie plik commands) w katalogu głównym projektu, na przykład:

#!/usr/bin/env bash

./yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations
./yii migrate/up
./yii migrate/up --migrationPath=@app/modules/rules/migrations
./yii migrate/up --migrationPath=@app/modules/formsaz/migrations
./yii migrate/up --migrationPath=@app/modules/todo/migrations
./yii formsaz/rules/init
./yii husky/rules/init

i dalej composer.json plik umieścił swoją nazwę:

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

Więc za każdym razem po composer install lub composer update, wszystkie polecenia będą uruchamiane (i będą przydatne w pracy zespołowej).


0 dla odpowiedzi № 3

Yii2: Zezwalaj na migrację z wielu ścieżek