2012-12-10 20 views
16

Mam dwa pola, które muszę zwiększyć limit znaków. Przeczytałem dokumentację i ku mojemu zaskoczeniu nie znalazłem dla niej żadnej opcji. Czy można to zrobić? Jeśli nie, jak mam to rozwiązać?Zmieniaj długość kolumny w Konstruktorze schematów?

Mógłbym upuścić kolumnę i ponownie utworzyć ją z właściwymi właściwościami, ale nie chcę tracić żadnych danych w bazie danych.

Odpowiedz

20

Zastosowanie Raw Queries:

/** 
* Make changes to the database. 
* 
* @return void 
*/ 
public function up() 
{ 
    DB::query('alter table MYTABLE modify MYCOLUMN varchar(new-length)'); 
} 

/** 
* Revert the changes to the database. 
* 
* @return void 
*/ 
public function down() 
{ 
    DB::query('alter table MYTABLE modify MYCOLUMN varchar(old-length)'); 
} 

Wymień MYTABLE, MYCOLUMN, new-length i old-length.

+0

To idealne, dzięki! – qwerty

+0

Działa w Laravel 3. – killlinuxkill

+0

W Laravel 5.1, musiałem zmienić zapytanie DB :: query na instrukcję DB :: statement. – Waqas

1

Użyj `` dla nazwy kolumny, jeśli nazwa jest słowem kluczowym dla systemu. W przeciwnym razie pojawi się komunikat "Błąd składni lub naruszenie dostępu".

DB::query("alter table MYTABLE modify `MYCOLUMN` varchar(new-length)"); 
26

Dla laravel 4

DB::update('ALTER TABLE `my_table` MODIFY `my_column` VARCHAR(<new length>)'); 
+0

Jestem nowy w laravel 4 ... Jak uruchomić to zadanie aktualizacji? – roadev

16

Dla laravel 5:

Schema::table('users', function($table) 
{ 
    $table->string('name', 50)->change(); 
}); 

Sprawdź docs aby uzyskać więcej informacji.