php db migration validator
1.0.2
在 Symfony 和 Laravel 等現代 PHP 框架中,遷移通常有up
和down
方法。在遷移定義的up
方法中,您必須編寫僅在向前運行遷移時呼叫的程式碼,而在down
中,您必須編寫僅在回滾遷移時呼叫的程式碼。使資料庫遷移不可逆轉是標準做法。遷移應該向後相容並且只能向前進行。
在 Laravel 中,缺失或空的down
方法不會阻止執行php artisan migrate:rollback
CLI 指令時的回滾遷移。資料庫的狀態不會改變,但遷移會從套用的遷移登錄中刪除,下次執行php artisan migrate
會再呼叫up
方法。為了防止這種行為,所有遷移都應該有down
方法,該方法會拋出異常,僅此而已。
php db migration validator檢查所有遷移檔案是否符合此要求。您可以將其新增至伺服器的 git hooks 以防止移轉回滾,或將驗證步驟新增至 CI。
透過 Composer 拉入包。
php composer require antonkomarev/php-db-migration-validator
驗證文件
php vendor/bin/php-db-migration-validator --rule=irreversible migrations/file.php
驗證許多文件
php vendor/bin/php-db-migration-validator --rule=irreversible migrations/file.php migrations/file2.php
透過通配符驗證多個文件
php vendor/bin/php-db-migration-validator --rule=irreversible migrations/2022_ *
驗證目錄中的文件
php vendor/bin/php-db-migration-validator --rule=irreversible migrations/
驗證多個目錄中的文件
php vendor/bin/php-db-migration-validator --rule=irreversible app/migrations/ vendor/migrations/
作為持續整合的一部分,自動驗證對儲存庫的所有貢獻是使用此工具的可能方法之一。
在應用程式儲存庫中建立檔案.github/workflows/db-migration-validation.yaml
。
name : DB Migration Validation
on :
push :
jobs :
db-migration-validation :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
- uses : shivammathur/setup-php@v2
with :
php-version : 8.1
extensions : tokenizer
coverage : none
- name : Install php db migration validator dependency
run : composer global require antonkomarev/php-db-migration-validator --no-interaction
- name : Ensure all database migrations are irreversible
run : php-db-migration-validator --rule=irreversible ./database/migrations
$ php vendor/bin/php-db-migration-validator --help
php db migration validator
--------------------------
by Anton Komarev <[email protected]>
Usage: php-db-migration-validator --rule=<rule> <path>
The following commands are available:
help Shows this usage instructions.
Options:
--rules=<rule> Validates the database migration(s) in the specified <path>.
Exits with code 1 on validation errors, 2 on other errors and 0 on success.
Available rules (at least one should be specified):
- irreversible — ensure if migration file has `down` method and this method throws an Exception.
php db migration validator
程式套件是由 Anton Komarev 根據 MIT 授權授權的開源軟體。 如果您想支援php db migration validator的開發,請考慮贊助我。非常感謝!
CyberCog 是愛好者的社交聯盟。研究產品和軟體開發的最佳解決方案是我們的熱情。