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"
]
]
];
ব্যবহারের সুপারিশ
মাইগ্রেশন ফাইল একবার কোড মার্জ হলে পুনরায় পরিবর্তন করা যাবে না, সমস্যা হলে নতুন সংশোধন অথবা মুছার কাজের ফাইল তৈরি করে তা পরিচালনা করতে হবে।
টেবিল তৈরি অপারেশন ফাইলের নামকরণ নিয়ম
{time(auto create)}_create_{টেবিলের নাম ইংরেজিতে ছোট অক্ষরে}
টেবিল সংশোধন অপারেশন ফাইলের নামকরণ নিয়ম
{time(auto create)}_modify_{টেবিলের নাম ইংরেজিতে ছোট অক্ষরে + নির্দিষ্ট সংশোধন বিষয় ইংরেজিতে ছোট অক্ষরে}
টেবিল মুছার অপারেশন ফাইলের নামকরণ নিয়ম
{time(auto create)}_delete_{টেবিলের নাম ইংরেজিতে ছোট অক্ষরে + নির্দিষ্ট সংশোধন বিষয় ইংরেজিতে ছোট অক্ষরে}
ডেটা পূরণের ফাইলের নামকরণ নিয়ম
{time(auto create)}_fill_{টেবিলের নাম ইংরেজিতে ছোট অক্ষরে + নির্দিষ্ট সংশোধন বিষয় ইংরেজিতে ছোট অক্ষরে}