Daftar Perintah Migration-nya Laravel - Dunia Laravel




Artikel ini bakal ngejabarin perintah-perintah yang ada di migration Laravel. Buat kalian yang masih bingung sama migration bisa baca-baca dulu artikel yang sebelumnya yah…


Table of Contents

  • Column Types
  • Column Modifiers
  • Modifying Columns
  • Creating Indexes
  • What's Next?



Column Types


Mari mulai dari tipe data kolom. Tipe data kolom merupakan hal yang harus ada pada saat buat table. Karena tipe data kolom ini nanti yang akan menentukan data apa yang mau di simpen di dalamnya.

Perintah
Keterangan
$table->id();
Sama dengan $table->bigIncrements('id'); hanya saja lebih singkat
$table->foreignId('user_id');
Sama dengan $table->unsignedBigInteger('user_id'); hanya saja lebih singkat
$table->bigIncrements('id');
Tipe data INTEGER ukuran big yang Auto-increment biasa di pake buat ‘primary key’
$table->bigInteger('votes');
Tipe data INTEGER ukuran big
$table->binary('data');
Tipe data BLOB
$table->boolean('confirmed');
Tipe data BOOLEAN
$table->char('name', 100);
Tipe data CHAR dengan panjang 100
$table->date('created_at');
Tipe data DATE
$table->dateTime('created_at', 0);
Tipe data DATETIME menggunakan presisi
$table->dateTimeTz('created_at', 0);
Tipe data DATETIME (dengan Time Zone) menggunakan presisi
$table->decimal('amount', 8, 2);
Tipe data DECIMAL dengan jumlah digit, dan jumlah decimal
$table->double('amount', 8, 2);
Tipe data DOUBLE dengan jumlah digit, dan jumlah decimal
$table->enum('level', ['easy', 'hard']);
Tipe data ENUM
$table->float('amount', 8, 2);
Tipe data FLOAT dengan jumlah digit, dan jumlah decimal
$table->geometry('positions');
Tipe data GEOMETRY
$table->geometryCollection('positions');
Tipe data GEOMETRYCOLLECTION
$table->increments('id');
Tipe data INTEGER yang Auto-increment biasa di pake buat ‘primary key’
$table->integer('votes');
Tipe data INTEGER
$table->ipAddress('visitor');
Tipe data IP ADDRESS
$table->json('options');
Tipe data JSON
$table->jsonb('options');
Tipe data JSONB
$table->lineString('positions');
Tipe data LINESTRING
$table->longText('description');
Tipe data LONGTEXT
$table->macAddress('device');
Tipe data MACADDRESS
$table->mediumIncrements('id');
Tipe data INTEGER berukuran medium yang Auto-increment
$table->mediumInteger('votes');
Tipe data INTEGER berukuran medium
$table->mediumText('description');
Tipe data TEXT berukuran medium
$table->morphs('taggable');
Menambahkan kolom bernama ‘taggable_id’ dengan tipe UNSIGNED BIGINT dan ‘taggable_type’ dengan tipe data VARCHAR
$table->uuidMorphs('taggable');
Menambahkan kolom bernama ‘taggable_id’ dengan tipe CHAR(36) dan ‘taggable_type’ dengan tipe data VARCHAR(255)
$table->multiLineString('positions');
Tipe data MULTILINESTRING
$table->multiPoint('positions');
Tipe data MULTIPOINT
$table->multiPolygon('positions');
Tipe data MULTIPOLYGON
$table->point('position');
Tipe data POINT
$table->polygon('positions');
Tipe data POLYGON
$table->rememberToken();
Menambah kolom ‘remember_token’ dengan tipe data varchar(100)
$table->set('flavors', ['strawberry', 'vanilla']);
Mengatur kategori isi pada suatu kolom
$table->smallIncrements('id');
Tipe data INTEGER ukuran small yang Auto-increment
$table->smallInteger('votes');
Tipe data INTEGER ukuran small
$table->softDeletes('deleted_at', 0);
Menambah kolom ‘delete_at’ dengan tipe data TIMESTAMP
$table->softDeletesTz('deleted_at', 0);
Menambahkan kolom ‘delete_at’ dengan tipe data TIMESTAMP yang menggunakan timezone
$table->string('name', 100);
Tipe data STRING dengan ukuran text
$table->text('description');
Tipe data TEXT
$table->time('sunrise', 0);
Tipe data TIME dengan preisis
$table->timeTz('sunrise', 0);
Tipe data TIME timezone dengan presisi
$table->timestamp('added_on', 0);
Tipe data TIMESTAMP dengan presisi
$table->timestampTz('added_on', 0);
Tipe data TIMESTAMP + timezone degan presisi
$table->timestamps(0);
Menambahkan 2 kolom bernama ‘created_at’ dan ‘updated_at’ dengan Tipe data TIMESTAMP dengan presisi
$table->timestampsTz(0);
Menambahkan 2 kolom bernama ‘created_at’ dan ‘updated_at’ dengan Tipe data TIMESTAMP + timezone dengan presisi
$table->tinyIncrements('id');
Tipe data INTEGER ukuran tiny yang Auto-increment
$table->tinyInteger('votes');
Tipe data INTEGER ukuran tiny
$table->unsignedBigInteger('votes');
Tipe data INTEGER positif ukuran big
$table->unsignedDecimal('amount', 8, 2);
Tipe data DECIMAL positif dengan jumlah digit dan jumlah decimal
$table->unsignedInteger('votes');
Tipe data INTEGER positif
$table->unsignedMediumInteger('votes');
Tipe data INTEGER positif dengan ukuran medium
$table->unsignedSmallInteger('votes');
Tipe daa INTEGER positif dengan ukuran small
$table->unsignedTinyInteger('votes');
Tipe data INTEGER positif dengan ukuran tiny
$table->uuid('id');
Tipe data untuk UUID
$table->year('birth_year');
Tipe data YEAR atau tahun

Sebagai tambahan, berikut adalah table data jenis-jenis integer beserta range nya.

Tipe Data
Range
Max Storage
Ukuran
Tinyint
-128 ke 127
255
1 byte
Smallint
-32.768 ke 32.767
65.535
2 byte
Mediumint
-8.388.608 ke 8.388.607
16.777.215
3 byte
Integer
-2.147.483.648 ke 2.147.483.647
4.294.967.295
4 byte
Bigint
-9.223.372.036.854.775.808 ke 9.223.372.036.854.775.807
18.446.744.073.709.551.615
8 byte

Column Modifiers


Column Modifiers adalah perintah yang digunakan untuk menambah sifat kolom.

Modifier
Keterangan
->after('column')
Meletakan kolom setelah kolom yang lainnya
->autoIncrement()
Membuat kolom tipe Integer jadi Auto-increment
->charset('utf8')
Mengkhususkan character set untuk kolom (MYSQL)
->collation('utf8_unicode_ci')
Mengkhususkan collation untuk kolom (MYSQL/PostgreSQL/SQL Server)
->comment('my comment')
Menambahkan komentar pada kolom
->default($value)
Membuat default value untuk suatu kolom
->first()
Menempatkan kolom pada urutan pertama pada table
->nullable($value = true)
Membuat kolom bisa diisi nilai kosong/NULL
->unsigned()
Menambahkan attribute unsigned pada kolom
->useCurrent()
Membuat kolom TIMESTAMP menggunakan waktu saat ini sebagai default value



Modifying Columns


Daftar perintah ini akan digunakan untuk mengubah kolom yang sebelumnya sudah dibuat. Sebelum menggunakan perintah ini, kalian perlu install doctrine/dbal pada dependencies project kalian.

composer require doctrine/dbal
Perintah ini digunakan untuk merubah jati diri si kolom, atau dengan kata lain merubah struktur kolom.

Perintah
Keterangan
->change();
Digunakan untuk mengubah attribute dari kolom.
->renameColumn('from', 'to');
Mengubah nama kolom dari ‘from’ ke ‘to’
->dropColumn('votes');
Menghapus kolom

Khusus untuk penggunan ->change(); harus bersamaan dengan ‘Column Modifiers’. Sebagai contoh

$table->string('name', 50)->nullable()->change();

Pada code diatas artinya atribut ‘nullable’ ditambahkan kedalam kolom name, yang mengakibatkan sekarang kolom name bisa diisi dengan value NULL.


Creating Index

Mengatur index suatu kolom. Contoh Index kolom adalah primary key, unique, spatial dll.

Perintah
Keterangan
$table->primary('id');
Membuat primary key
$table->primary(['id', 'parent_id']);
Membuat composite key (2 kolom jadi 1 buat primary key)
$table->unique('email');
Membuat unique index
$table->index('state');
Membuat index biasa
$table->spatialIndex('location');
Membuat spatial index (kecuali SQL Lite)
$table->dropPrimary('users_id_primary');
Menghapus primary key dari table users kolom id
$table->dropUnique('users_email_unique');
Menghapus unique dari table users kolom email
$table->dropIndex('geo_state_index');
Menghapus index biasa dari table geo kolom state
$table-> dropSpatialIndex('geo_location_spatialindex');
Menghapus spatial index dari table geo kolom location

Itu daftar perintah-perintah laravel yang sering di pake sama yang ga sering di pake. Kalian ga harus hafal semuanya kok, karena emang ga bakal kalian pake semua. Kalo misal kalian lupa kan kalian bisa baca artikel ini lagi hehe…



Buat yang mau tau cara penggunaaannya bisa baca artikel tentang migration yak…




Tentu saja tidak!!!

Lanjut ga nih guys? Masa ga kuy?

Komentar

Postingan Populer