feat(database): tambah field alamat dan referensi lokal ke tabel customers
Menambahkan migration untuk field tambahan pada tabel customers: - Menambahkan field home_rt dan home_rw untuk RT/RW alamat rumah - Menambahkan field ktp_rt dan ktp_rw untuk RT/RW alamat KTP - Menambahkan field local_ref dengan tipe TEXT untuk referensi lokal panjang - Semua field dibuat nullable untuk fleksibilitas data - Menambahkan index untuk kombinasi RT/RW untuk performa query - Menambahkan comment pada setiap field untuk dokumentasi - Menyediakan method down() lengkap untuk rollback migration - Menggunakan tipe data yang sesuai untuk setiap field
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* Menambahkan field tambahan ke tabel customers:
|
||||
* - home_rt: RT alamat rumah
|
||||
* - home_rw: RW alamat rumah
|
||||
* - ktp_rt: RT alamat KTP
|
||||
* - ktp_rw: RW alamat KTP
|
||||
* - local_ref: Referensi lokal dengan data panjang
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('customers', function (Blueprint $table) {
|
||||
// Field RT dan RW untuk alamat rumah
|
||||
$table->string('home_rt', 10)->nullable()->comment('RT alamat rumah');
|
||||
$table->string('home_rw', 10)->nullable()->comment('RW alamat rumah');
|
||||
|
||||
// Field RT dan RW untuk alamat KTP
|
||||
$table->string('ktp_rt', 10)->nullable()->comment('RT alamat KTP');
|
||||
$table->string('ktp_rw', 10)->nullable()->comment('RW alamat KTP');
|
||||
|
||||
// Field untuk referensi lokal dengan tipe data TEXT untuk menampung data panjang
|
||||
$table->text('local_ref')->nullable()->comment('Referensi lokal dengan data panjang');
|
||||
|
||||
// Menambahkan index untuk performa query jika diperlukan
|
||||
$table->index(['home_rt', 'home_rw'], 'idx_customers_home_rt_rw');
|
||||
$table->index(['ktp_rt', 'ktp_rw'], 'idx_customers_ktp_rt_rw');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* Menghapus field yang ditambahkan jika migration di-rollback
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('customers', function (Blueprint $table) {
|
||||
// Hapus index terlebih dahulu
|
||||
$table->dropIndex('idx_customers_home_rt_rw');
|
||||
$table->dropIndex('idx_customers_ktp_rt_rw');
|
||||
|
||||
// Hapus kolom yang ditambahkan
|
||||
$table->dropColumn([
|
||||
'home_rt',
|
||||
'home_rw',
|
||||
'ktp_rt',
|
||||
'ktp_rw',
|
||||
'local_ref'
|
||||
]);
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user