2013-10-11 16 views
8

Halihazırdaki "etkin" alanımın varsayılan değerini "1" yapacak bir geçiş yapmayı denemeye çalışıyorum. alan zaten var çünkü sanırımLaravel Schema Builder Güncelleştirme Varsayılan Değeri

$table->integer('active')->default(1); 

Ama hiçbir başarı ile benim göçün bu çalıştı:

Ben docs gibi bir şey kullanabilirsiniz görüyoruz. Şema oluşturucuyu kullanarak mevcut alanları doğru şekilde yönetmenin bir yolu var mı?

Benim şu anki göç:

public function up() 
{ 
    Schema::table('scores', function($table){ 
     $table->integer('active')->default(1); 
    }); 
} 

Düzenleme: Şimdiye kadar okuduğunuz kitap, bu sorgu oluşturucu ile yapılamaz itibaren

. Ben çiğ sorguyu çalıştırmayı denediğinizde Ama:

DB::query("ALTER TABLE `scores` CHANGE COLUMN `active` `active` int(11) NOT NULL DEFAULT '1';"); 

Ben bir "mevcut değil hatası yöntemi 'sorgusu'" alıyorum, bu yüzden bu yöntem adı I değiştirildi tahmin ediyorum sadece ne bulamıyor o

cevap

12

olarak değiştirildi() DB değiştirildi DB gibi bir :: sorguda görünüyor :: beyanı() Bu hile yaptı

: Eğer sütunun adını değiştirerek olmadığından

DB::statement("ALTER TABLE `scores` CHANGE COLUMN `active` `active` int(11) NOT NULL DEFAULT '1';"); 
+1

CHANGE COLUMN yerine, DEĞİŞİM KOLONU'nu kullanabilir ve bu göstergeyi çıkartabilirsiniz. d ifadenizde aktif. Aşağıdaki gibi yeni deyim: DB :: statement ("ALTER TABLE" ifadesi DEĞİŞİM COLUMN aktif int (11) NOT NULL DEFAULT '1'; ");' stackoverflow.com/a/14767467/788445 – Jon