Laravel framework kullanarak mevcut veritabanı tabloma nasıl yeni bir sütun ekleyeceğimi bulamıyorum.
kullanarak geçiş dosyasını düzenlemeye çalıştım...
<?php
public function up()
{
Schema::create('users', function ($table) {
$table->integer("paid");
});
}
Terminalde php artisan migrate:install
ve migrate
komutlarını çalıştırıyorum.
Yeni sütunları nasıl ekleyebilirim?
Bir migrasyon oluşturmak için Artisan CLI üzerinde migrate:make komutunu kullanabilirsiniz. Mevcut modellerle çakışmasını önlemek için belirli bir isim kullanın
Laravel 3 için:
php artisan migrate:make add_paid_to_users
Laravel 5+ için:
php artisan make:migration add_paid_to_users_table --table=users
Daha sonra Schema::table()
yöntemini kullanmanız gerekir (mevcut bir tabloya eriştiğiniz için, yeni bir tablo oluşturmuyorsunuz). Ve şu şekilde bir sütun ekleyebilirsiniz:
public function up()
{
Schema::table('users', function($table) {
$table->integer('paid');
});
}
ve geri alma seçeneğini eklemeyi unutmayın:
public function down()
{
Schema::table('users', function($table) {
$table->dropColumn('paid');
});
}
Ardından geçişlerinizi çalıştırabilirsiniz:
php artisan migrate
Tüm bunlar Laravel 3'ün dokümantasyonunda iyi bir şekilde ele alınmıştır:
Ve Laravel 4 / Laravel 5 için:
Düzenle:
Bu alanı belirli bir sütundan sonra eklemek için $table->integer('paid')->after('whichever_column');
kullanın.
Eğer Laravel 5 kullanıyorsanız, komut şöyle olacaktır;
php artisan make:migration add_paid_to_users
Bir şeyler yapmak için kullanılan tüm komutlar (kontrolörler, modeller, geçişler vb.) make:
komutu altına taşındı.
Yine de php artisan migrate
hala aynıdır.
İlk Schema::create
metodu içinde aşağıdaki gibi yeni sütunlar ekleyebilirsiniz:
Schema::create('users', function($table) {
$table->integer("paied");
$table->string("title");
$table->text("description");
$table->timestamps();
});
Zaten bir tablo oluşturduysanız, yeni bir geçiş oluşturarak ve Schema::table
yöntemini kullanarak bu tabloya ek sütunlar ekleyebilirsiniz:
Schema::table('users', function($table) {
$table->string("title");
$table->text("description");
$table->timestamps();
});
Belgeler bu konuda oldukça ayrıntılıdır ve sürüm 3'den sürüm 4'ye kadar çok fazla değişmemiştir.