Masalah Auto Increment Pada Migrasi Laravel
Laravel sendiri memiliki fitur migrasi, dan sebelumnya saya juga sudah menjelaskan tentang bagaimana menggunakan cara membuat migrasi laravel. Sederhananya migrasi ini adalah fitur yang bisa digunakan dalam mengelola/membuat tabel database, dan laravel sendiri sudah menyediakan beberapa paramter yang bisa digunakan dalam operasi migrasinya
Lihat pada : https://laravel.com/docs/4.2/schema
Secara default ketika Anda mendefinisikan nilai – nilai seperti integer, medium integer, small integer dan tiny integer maka laravel akan menambahkan nilai auto increments kedalamnya, hal ini tentunya akan mengakibatkan error saat migrasi terutama ketika tipe integer lebih dari satu
“There can be only one auto column ..” intinya hanya boleh ada 1 kolom auto increment diddalam sebuah tabel
Untuk itu dalam menambahkan tipe integer Anda perlu menambahkan parameter seperti berikut :
integer($column, $autoIncrement = false, $unsigned = false)
atau sederhananya Anda cukup menambahkan parameter false pada setiap nilai integer supaya tidak terjadi penambahan 2 auto increments pada nilai kolom integer yang tidak diinginkan seperti contoh berikut :
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePegawaiTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('pegawai', function (Blueprint $table) {
$table->increments('id')->unsigned();
$table->string('nama_lengkap',65)->nullable();
$table->string('jabatan',45)->nullable();
$table->smallInteger('umur',false)->nullable(); //contoh integer
$table->text('alamat')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('pegawai');
}
}
0 Response to "Masalah Auto Increment Pada Migrasi Laravel"
Post a Comment
Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin