في أطر عمل PHP الحديثة مثل Symfony وLaravel، عادةً ما يكون لعمليات الترحيل طرق up
down
. في الطريقة up
لتعريف الترحيل، كان عليك كتابة التعليمات البرمجية التي يتم استدعاؤها فقط عند تشغيل الترحيل للأمام down
- التعليمات البرمجية التي يتم استدعاؤها فقط عند التراجع عن الترحيل. من الممارسات القياسية جعل عمليات ترحيل قاعدة البيانات غير قابلة للتراجع. يجب أن تكون عمليات الترحيل متوافقة مع الإصدارات السابقة وتتقدم فقط.
في Laravel، لا تمنع الطريقة المفقودة أو الفارغة down
ترحيل التراجع عند تنفيذ أمر php artisan migrate:rollback
CLI. لن تتغير حالة قاعدة البيانات، ولكن ستتم إزالة الترحيل من سجل عمليات الترحيل المطبقة، وسيستدعي التنفيذ التالي php artisan migrate
الأسلوب up
مرة أخرى. لمنع هذا السلوك، يجب أن يكون لدى جميع عمليات الترحيل طريقة down
تؤدي إلى حدوث استثناء، لا أكثر.
يتحقق php db migration validator مما إذا كانت جميع ملفات الترحيل تلبي هذا المطلب. يمكنك إضافته إلى خطافات git الخاصة بالخادم لمنع التراجع عن الترحيل، أو إضافة خطوة التحقق من الصحة إلى 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
عبارة عن برنامج مفتوح المصدر مرخص بموجب ترخيص MIT بواسطة Anton Komarev. إذا كنت ترغب في دعم تطوير php db migration validator ، فيرجى التفكير في رعايتي. ًشكراً جزيلا!
CyberCog هي وحدة اجتماعية للمتحمسين. البحث عن أفضل الحلول في تطوير المنتجات والبرامج هو شغفنا.