ඒකකය 3: දත්ත සමුදාය සැකසීම (Database Setup)

අපගේ Laravel ව්‍යාපෘතිය දැන් සූදානම්. ඊළඟට, දත්ත ගබඩා කිරීම සඳහා MySQL දත්ත සමුදායක් (database) සකසා එය අපගේ යෙදුම සමඟ සම්බන්ධ කරමු.

1. MySQL දත්ත සමුදායක් සෑදීම

ඔබගේ XAMPP/WAMP පාලක පැනලය (control panel) හරහා phpMyAdmin වෙත පිවිසෙන්න. ඉන්පසු **"New"** ක්ලික් කර `laravel_crud_db` නමින් නව දත්ත සමුදායක් සාදන්න. Collation එක `utf8mb4_general_ci` ලෙස තැබීම වඩාත් සුදුසුය.

2. `.env` ගොනුව සැකසීම

දැන් අපි Laravel හට මෙම දත්ත සමුදාය භාවිතා කරන ලෙස පැවසිය යුතුයි. ඔබේ ව්‍යාපෘතියේ ප්‍රධාන ෆෝල්ඩරයේ ඇති `.env` ගොනුව විවෘත කර, දත්ත සමුදා සම්බන්ධතාවය සඳහා වන කොටස (`DB_` වලින් ආරම්භ වන) පහත පරිදි සකසන්න.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_crud_db
DB_USERNAME=root
DB_PASSWORD=

3. Laravel Migrations යනු මොනවාද?

Migrations යනු ඔබේ දත්ත සමුදායේ ව්‍යුහය (schema) සඳහා වන সংস্করণ පාලනය (version control) වැනි දෙයකි. SQL queries කෙලින්ම දත්ත සමුදාය මත ක්‍රියාත්මක කරනවා වෙනුවට, PHP කේත භාවිතයෙන් දත්ත වගු (tables) සහ තීරු (columns) සෑදීමට, වෙනස් කිරීමට හෝ මැකීමට migrations අපට ඉඩ සලසයි. මෙය කණ්ඩායමක් ලෙස වැඩ කිරීමේදී සහ ව්‍යාපෘතිය වෙනත් පරිගණකයක ස්ථාපනය කිරීමේදී ඉතා ප්‍රයෝජනවත් වේ.

4. Migration එකක් භාවිතයෙන් `students` වගුව සෑදීම

අපගේ "ශිෂ්‍ය කළමනාකරණ පද්ධතිය" සඳහා `students` නමින් වගුවක් අවශ්‍යයි. එය සෑදීමට migration ගොනුවක් ජනනය කරමු. ඔබේ Terminal එකේ පහත Artisan විධානය ක්‍රියාත්මක කරන්න.

php artisan make:migration create_students_table

මෙමගින් `database/migrations/` ෆෝල්ඩරය තුළ නව migration ගොනුවක් සෑදේ. එය විවෘත කර, `up()` ශ්‍රිතය (`function`) තුළ අපට අවශ්‍ය තීරු (columns) පහත පරිදි එක් කරන්න.


use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('students', function (Blueprint $table) {
            $table->id(); // Primary Key (Auto-incrementing ID)
            $table->string('name');
            $table->string('email');
            $table->string('phone');
            $table->string('course');
            $table->timestamps(); // created_at and updated_at columns
        });
    }
    // ...
};

දැන්, මෙම migration ගොනුව ක්‍රියාත්මක කර දත්ත සමුදාය තුළ `students` වගුව සෑදීමට, පහත විධානය ක්‍රියාත්මක කරන්න.

php artisan migrate

මෙය සාර්ථකව ක්‍රියාත්මක වූ පසු, phpMyAdmin හි `laravel_crud_db` දත්ත සමුදාය පරීක්ෂා කළහොත්, ඔබ අලුතින් අර්ථ දැක්වූ `students` වගුව එහි නිර්මාණය වී ඇති බව පෙනෙනු ඇත. 🥳