Jump to content
Üyelik kaydınızı yaparak son yazılan içeriklerden haberdar olun! ×
  • entries
    24
  • comments
    0
  • views
    73,582

Laravel Migration Index


Doğuhan ELMA

45 views

Index Oluşturma:
Laravel şema oluşturucu çeşitli indeks türlerini destekler. Aşağıdaki örnek yeni bir e-mail sütunu oluşturmakta ve değerlerinin benzersiz olması gerektiğini belirtmektedir. İndeksi oluşturmak için, unique metodunu sütun tanımına zincirleyebiliriz:

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
 
Schema::table('users', function (Blueprint $table) {
    $table->string('email')->unique();
});

 

Alternatif olarak, sütunu tanımladıktan sonra dizini oluşturabilirsiniz. Bunu yapmak için, şema oluşturucu planında unique yöntemini çağırmalısınız. Bu yöntem, benzersiz bir dizin alması gereken sütunun adını kabul eder:

$table->unique('email');

 

Bileşik (veya kompozit) bir dizin oluşturmak için bir index yöntemine bir dizi sütun bile aktarabilirsiniz:

$table->index(['account_id', 'created_at']);

 

Bir indeks oluştururken, Laravel tabloya, sütun adlarına ve indeks türüne göre otomatik olarak bir indeks adı oluşturacaktır, ancak indeks adını kendiniz belirtmek için yönteme ikinci bir argüman iletebilirsiniz:

$table->unique('email', 'unique_email');

 

Tablo da iki alanın birleşik ve benzersiz olmasını isteyebiliriz. Mesela, Bir kişinin sadece bir rolu tek kayıt olamasını isteyebiliriz.

$table->unique(['role_id', 'user_id']);

 

Fulltext için:

$table->fullText('body');

 

 

İndeksleri Silme:
Bir indeksi bırakmak için, indeksin adını belirtmelisiniz. Varsayılan olarak, Laravel tablo adını, indekslenen sütunun adını ve indeks türünü temel alarak otomatik olarak bir indeks adı atar. İşte bazı örnekler:

 

Command  
$table->dropPrimary('users_id_primary');  
$table->dropUnique('users_email_unique');  
$table->dropIndex('geo_state_index');  
$table->dropFullText('posts_body_fulltext');  
Schema::table('geo', function (Blueprint $table) {
    $table->dropIndex(['state']); // Drops index 'geo_state_index'
});

 

Foreign:

$table->dropForeign(['user_id']);

 

 

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...