Migracionet

Migracionet

Migracionet mundësojnë definimin e krijimit dhe modifikimit të tabelave, fushave dhe indekseve nëpërmes kodit, të cilat kur ekzekutohen kryejnë veprimet e nevojshme në databazë.

Definimi i migracioneve

Krijimi i një migracioni të zbrazët me Artisan:

php artisan make:migration CreateCatsTable

ose

php artisan make:migration create_cats_table

Kjo komandë kthen raportin:

Created Migration: 2018_05_07_194003_create_cats_table

2018_05_07 - Data e krijimit të migracionit (7 maj 2018)

_194003 - Ora e krijimit të migracionit (19:40:03)

_create_cats_table - emri i tabelës së krijuar do të jetë "cats".

<?php

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

class CreateCatsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('cats', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('cats');
    }
}

Migracioni është klasë speciale që ka dy metoda: up() dhe down().

class CreateCatsTable extends Migration
{
    public function up()
    {
        
    }

    public function down()
    {

    }
}

Brenda metodës up() definohet krijimi/modifikimi i një tabele të databazës, ndërsa në metodëm down() definohen veprimet e duhura kur duhet të anulohet ajo që është definuar në metodën up() dhe kjo rëndom nënkupton fshirjen e tabelës. Thënë thjesht, metoda up() kryen veprimin, ndërsa metoda down() e anulon atë veprim, respektivisht kthen në gjendjen paraprake.

Fajllat e migracioneve ruhen në folderin database/migrations. Fajllat kanë emërtim të përbërë nga data/ora e krijimit të tij dhe emrit që i përgjigjet emrit të klasës së definuar brenda atij fajlli. P.sh. për klasën class CreateUsersTable, të krijuar më 12.03.2018 në orën 18:05:30 emri i fajlli do të jetë si vijon:

2018_03_12_180530_create_users_table.php

Migracionet gjithmonë ekzekutohen kronologjikisht, prej datës më të vjetër deri te data më e re.