File "2016_03_06_165923_employee_company_id_column.php"

Full Path: /home/isoftco/public_html/hrm/database/migrations/2016_03_06_165923_employee_company_id_column.php
File size: 1.49 KB
MIME-type: text/x-php
Charset: utf-8

<?php

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

class EmployeeCompanyIdColumn extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        DB::beginTransaction();
        DB::statement('SET FOREIGN_KEY_CHECKS=0;');
        Schema::table("employees", function(Blueprint $table) {
            $table->unsignedInteger("company_id")->after("employeeID");
            $table->foreign("company_id")->references("id")->on("companies")->onUpdate("cascade")->onDelete("cascade");
        });

        $employees = \App\Models\Employee::all();

        foreach($employees as $employee) {
            $employeeID = $employee->employeeID;
            $parts = explode("-", $employeeID);
            $company_id = $parts[0];
            $employee->company_id = $company_id;
            $employee->save();
        }

        DB::statement('SET FOREIGN_KEY_CHECKS=1;');
        DB::commit();
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        DB::beginTransaction();
        DB::statement('SET FOREIGN_KEY_CHECKS=0;');

        Schema::table("employees", function(Blueprint $table) {
            $table->dropForeign("employees_company_id_foreign");
            $table->dropIndex("employees_company_id_foreign");
           $table->dropColumn("company_id");
        });

        DB::statement('SET FOREIGN_KEY_CHECKS=1;');
        DB::commit();
    }
}