Migration ডাটাবেস মাইগ্রেশন টুল Phinx

বর্ণনা

Phinx বিকাশকারীদের ডাটাবেস সম্পাদনা এবং রক্ষণাবেক্ষণ সহজ করে। এটি মানুষ সৃষ্ট SQL স্টেটমেন্ট থেকে বিরত থাকে, এবং ডাটাবেস মাইগ্রেশন পরিচালনা করার জন্য শক্তিশালী PHP API ব্যবহার করে। ডেভেলপাররা তাদের ডাটাবেস মাইগ্রেশন এক্সক্লুজিভ রাখতে ভার্সন নিয়ন্ত্রণ ব্যবহার করতে পারেন। 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"
        ]
    ]
];

ব্যবহারের পরামর্শ

মাইগ্রেশন ফাইল একবার মার্জ করার পর আর পরিবর্তন করা যাবে না, যদি সমস্যা হয় তাহলে নতুন পরিবর্তন অথবা মুছে ফেলার জন্য অপারেশন ফাইল তৈরি করতে হবে।

ডেটাবেস টেবিল তৈরি অপারেশন ফাইলের নামকরণ নিয়ম

{সময় (অটোমেটিক তৈরি)}_create_{টেবিল নামের ইংরেজি ছোট অক্ষর}

ডেটাবেস টেবিল পরিবর্তন অপারেশন ফাইলের নামকরণ নিয়ম

{সময় (অটোমেটিক তৈরি)}_modify_{টেবিল নামের ইংরেজি ছোট অক্ষর+বিস্তারিত পরিবর্তন আইটেমের ইংরেজি ছোট অক্ষর}

ডেটাবেস টেবিল মুছে ফেলার অপারেশন ফাইলের নামকরণ নিয়ম

{সময় (অটোমেটিক তৈরি)}_delete_{টেবিল নামের ইংরেজি ছোট অক্ষর+বিস্তারিত পরিবর্তন আইটেমের ইংরেজি ছোট অক্ষর}

ডেটা পূর্ণ করার অপারেশন ফাইলের নামকরণ নিয়ম

{সময় (অটোমেটিক তৈরি)}_fill_{টেবিল নামের ইংরেজি ছোট অক্ষর+বিস্তারিত পরিবর্তন আইটেমের ইংরেজি ছোট অক্ষর}