ترحيلات قواعد البيانات في PHP: دليل شامل للأدوات والمكتبات

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ترحيلات قواعد البيانات في PHP: الأدوات والممارسات الحديثة



ترحيلات قواعد البيانات هي جزء لا يتجزأ من التطوير الحديث في PHP. فهي تسمح لفرق المطورين بمزامنة تغييرات مخطط قاعدة البيانات، وتتبع تاريخ التغييرات، وتطبيقها تلقائيًا على بيئات مختلفة (البيئة المحلية، بيئة الاختبار، بيئة الإنتاج). في هذه المقالة، سنستعرض المكتبات والأدوات الرئيسية للترحيلات في PHP، وطريقة تثبيتها، وإعدادها، وأمثلة على استخدامها.



ما هي الترحيلات ولماذا نحتاجها؟



ترحيل قاعدة البيانات هو سكريبت يصف تغيير المخطط: إنشاء جدول، إضافة/حذف أعمدة، فهارس، مفاتيح خارجية. تتيح الترحيلات ما يلي:

  • إصدار تغييرات هيكل قاعدة البيانات مع كود التطبيق.
  • أتمتة النشر على خوادم جديدة.
  • التراجع عن التغييرات عند الحاجة.
  • العمل الجماعي دون تعارضات.


المكتبات الشائعة للترحيلات في PHP



1. Phinx (robmorgan/phinx)

Phinx هي واحدة من أشهر المكتبات المستقلة للترحيلات. وهي غير مرتبطة بإطار عمل محدد وتدعم MySQL, PostgreSQL, SQLite, SQL Server.



التثبيت عبر Composer:

composer require robmorgan/phinx


إنشاء ملف الإعداد phinx.yml:

paths:    migrations: '%%PHINX_CONFIG_DIR%%/db/migrations'    seeds: '%%PHINX_CONFIG_DIR%%/db/seeds'

environments: default_migration_table: phinxlog default_database: development development: adapter: mysql host: localhost name: myapp_db user: root pass: '' port: 3306 charset: utf8


مثال على الترحيل (إنشاء جدول users):

<?php

use Phinx\\Migration\\AbstractMigration;

class CreateUsersTable extends AbstractMigration{ public function change() { $table = $this->table('users', ['id' => false, 'primary_key' => ['id']]); $table->addColumn('id', 'biginteger', ['identity' => true]) ->addColumn('username', 'string', ['limit' => 50]) ->addColumn('email', 'string', ['limit' => 100]) ->addColumn('created_at', 'datetime') ->addColumn('updated_at', 'datetime', ['null' => true]) ->addIndex(['email'], ['unique' => true]) ->create(); }}


تشغيل الترحيلات:

vendor/bin/phinx migrate -e development


2. Doctrine Migrations (doctrine/migrations)

Doctrine Migrations هي جزء من نظام Doctrine ORM. وهي مثالية للمشاريع التي تستخدم Doctrine بالفعل. تدعم جميع أنظمة إدارة قواعد البيانات الشائعة.



التثبيت:

composer require doctrine/migrations


الإعداد (migrations.php):

<?phpreturn [    'table_storage' => [        'table_name' => 'doctrine_migration_versions',    ],    'migrations_paths' => [        'App\\Migrations' => './migrations',    ],    'all_or_nothing' => true,    'transactional' => true,    'check_database_platform' => true,];


مثال على الترحيل:

<?php

namespace App\\Migrations;

use Doctrine\\DBAL\\Schema\\Schema;use Doctrine\\Migrations\\AbstractMigration;

class Version20240101000000 extends AbstractMigration{ public function up(Schema $schema): void { $table = $schema->createTable('products'); $table->addColumn('id', 'integer', ['autoincrement' => true]); $table->addColumn('name', 'string', ['length' => 255]); $table->addColumn('price', 'decimal', ['precision' => 10, 'scale' => 2]); $table->se

توصيات