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_{টেবিল নামের ইংরেজি ছোট অক্ষর+বিস্তারিত পরিবর্তন আইটেমের ইংরেজি ছোট অক্ষর}