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_{اسم الجدول بالإنجليزية الصغيرة+ عنصر التعديل المحدد بالإنجليزية الصغيرة}