Migration أداة ترحيل قاعدة البيانات Phinx

الشرح

يمكن أن تساعد Phinx المطورين على تعديل وصيانة قاعدة البيانات بشكل بسيط. إنها تتجنب كتابة عبارات SQL يدويًا، وتستخدم واجهة برمجة تطبيقات PHP القوية لإدارة ترحيل قاعدة البيانات. يمكن للمطورين استخدام التحكم في الإصدارات لإدارة ترحيل قواعد البيانات الخاصة بهم. يمكن لـ Phinx إجراء انتقال البيانات بسهولة بين قواعد بيانات مختلفة. كما يمكن تتبع السكربتات التي تم تنفيذها، مما يعني أن المطورين لا يحتاجون للقلق بشأن حالة قاعدة البيانات، ويمكنهم التركيز أكثر على كيفية كتابة أنظمة أفضل.

عنوان المشروع

https://github.com/cakephp/phinx

التثبيت

composer require robmorgan/phinx

عنوان الوثائق الرسمية باللغة الصينية

يمكنك الاطلاع على الوثائق الرسمية باللغة الصينية لفهم الاستخدام التفصيلي، هنا فقط نوضح كيفية تكوينها واستخدامها في webman

https://tsy12321.gitbooks.io/phinx-doc/content/

هيكل دليل ملفات الترحيل

.
├── app                           دليل التطبيق
│   ├── controller                دليل المتحكمات
│   │   └── Index.php             المتحكم
│   ├── model                     دليل النماذج
......
├── database                      ملفات قاعدة البيانات
│   ├── migrations                ملفات الترحيل
│   │   └── 20180426073606_create_user_table.php
│   ├── seeds                     بيانات اختبارية
│   │   └── UserSeeder.php
......

إعداد phinx.php

قم بإنشاء ملف phinx.php في جذر المشروع

<?php
return [
    "paths" => [
        "migrations" => "database/migrations",
        "seeds"      => "database/seeds"
    ],
    "environments" => [
        "default_migration_table" => "phinxlog",
        "default_database"        => "dev",
        "default_environment"     => "dev",
        "dev" => [
            "adapter" => "DB_CONNECTION",
            "host"    => "DB_HOST",
            "name"    => "DB_DATABASE",
            "user"    => "DB_USERNAME",
            "pass"    => "DB_PASSWORD",
            "port"    => "DB_PORT",
            "charset" => "utf8"
        ]
    ]
];

نصائح للاستخدام

بمجرد دمج كود ملف الترحيل، لا يُسمح بإجراء أي تعديلات عليه مرة أخرى، وإذا ظهرت مشكلة، يجب إنشاء عملية تعديل جديدة أو حذف ملف المعالجة.

قاعدة تسمية ملفات عمليات إنشاء الجدول

{time(auto create)}_create_{اسم الجدول بالإنجليزية الصغيرة}

قاعدة تسمية ملفات عمليات تعديل الجدول

{time(auto create)}_modify_{اسم الجدول بالإنجليزية الصغيرة+ عنصر التعديل المحدد بالإنجليزية الصغيرة}

قاعدة تسمية ملفات عمليات حذف الجدول

{time(auto create)}_delete_{اسم الجدول بالإنجليزية الصغيرة+ عنصر التعديل المحدد بالإنجليزية الصغيرة}

قاعدة تسمية ملفات تعبئة البيانات

{time(auto create)}_fill_{اسم الجدول بالإنجليزية الصغيرة+ عنصر التعديل المحدد بالإنجليزية الصغيرة}