දත්ත සමුදාය, Migrations සහ Eloquent Models
phpMyAdmin වැනි මෙවලම් භාවිතයෙන් අතින් (manually) වගු සෑදීම වෙනුවට, Laravel Migrations නම් ප්රබල ක්රමවේදය භාවිතයෙන්, PHP කේත ලෙසම දත්ත සමුදා ව්යුහය නිර්වචනය කිරීමට සහ කළමනාකරණය කිරීමට ඉගෙන ගැනීම.
Migrations යනු ඔබගේ දත්ත සමුදාය සඳහා වන **"version control"** පද්ධතියක් වැනිය. Git භාවිතයෙන් ඔබගේ කේතයේ වෙනස්කම් කළමනාකරණය කරන්නා සේම, migrations මගින් ඔබගේ දත්ත සමුදායේ ව්යුහයේ (schema) වෙනස්කම් කළමනාකරණය කරයි.
phpMyAdmin වෙත ගොස් වගු සහ තීරු click කර සෑදීම වෙනුවට, අපි PHP class ගොනු ලෙස ඒවා නිර්වචනය කරමු. මෙමගින් කණ්ඩායමක් ලෙස වැඩ කිරීමේදී සහ ව්යාපෘතිය යාවත්කාලීන කිරීමේදී විශාල පහසුවක් ලැබේ.
Laravel හිදී, සෑම දත්ත සමුදා වගුවකටම අදාළ **Model** එකක් ඇත. Model එක මගින් එම වගුව සමඟ කටයුතු කිරීමට Eloquent ORM වෙත පහසුකම් සපයයි. `php artisan make:model` විධානය සමඟ `-m` flag එක යෙදීමෙන්, අදාළ Model එක සහ Migration ගොනුව එකවරම සාදාගත හැක.
මෙම විධානය ක්රියාත්මක කළ විට:
Migration ගොනුව තුළ `up()` නමින් function එකක් ඇත. දත්ත සමුදා ව්යුහය නිර්වචනය කරන්නේ මෙම function එක තුළය. Laravel හි Schema builder මගින් විවිධ වර්ගයේ තීරු (columns) පහසුවෙන් සෑදිය හැක.
උදාහරණයක් ලෙස, `..._create_products_table.php` ගොනුවේ `up()` function එක මෙසේ සකස් කළ හැක:
පියවර 1: `.env` ගොනුව සකස් කිරීම
ඔබගේ Laravel ව්යාපෘතියේ root directory එකේ ඇති `.env` ගොනුව විවෘත කර, දත්ත සමුදා සම්බන්ධතා තොරතුරු ඇතුළත් කරන්න. පළමුව phpMyAdmin හි `supermarket_laravel` නමින් හිස් දත්ත සමුදායක් සාදන්න.
පියවර 2: අවශ්ය Models සහ Migrations සෑදීම
Command Prompt එකේ, ඔබගේ ව්යාපෘති ෆෝල්ඩරය තුළ සිට පහත විධාන එකින් එක ක්රියාත්මක කරන්න.
පියවර 3: Migration ගොනු සංස්කරණය කිරීම
`database/migrations` ෆෝල්ඩරයේ ඇති අලුතින් සෑදුණු migration ගොනු විවෘත කර, ඉහත උදාහරණයේ පරිදි, අපගේ සුපිරි වෙළඳසැල් පද්ධතියට අවශ්ය සියලුම තීරු (columns) සහ සම්බන්ධතා (foreign keys) නිර්වචනය කරන්න.
පියවර 4: දත්ත සමුදාය Migrate කිරීම
සියලුම migration ගොනු සූදානම් කළ පසු, පහත විධානය ක්රියාත්මක කරන්න. මෙමගින් Laravel, ඔබගේ migration ගොනු කියවා, `.env` ගොනුවේ ඇති දත්ත සමුදාය තුළ අදාළ සියලුම වගු ස්වයංක්රීයව නිර්මාණය කරනු ඇත.
දැන් phpMyAdmin වෙත ගොස් `supermarket_laravel` දත්ත සමුදාය පරීක්ෂා කරන්න. ඔබ නිර්වචනය කළ සියලුම වගු (`users`, `products`, `categories`, etc.) එහි දිස්වන්නේ නම්, ඔබ මෙම මොඩියුලය සාර්ථකව නිම කර ඇත!