2012-12-10 12 views
16

Ho due campi su cui ho bisogno di incrementare il limite di caratteri. Ho letto la documentazione e con mia sorpresa non ho trovato alcuna alternativa. È possibile farlo? Se no, come dovrei risolvere?Modificare la lunghezza della colonna nel generatore Schema?

Potrei rilasciare la colonna e ricrearla con le proprietà corrette, ma non voglio perdere alcun dato nel database.

risposta

20

Uso 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)'); 
} 

Sostituire MYTABLE, MYCOLUMN, new-length e old-length.

+0

Perfetto, grazie! – qwerty

+0

Funziona in Laravel 3. – killlinuxkill

+0

In Laravel 5.1, ho dovuto modificare l'istruzione DB :: query in DB ::. – Waqas

1

Utilizzare `` per il nome della colonna se il nome è una parola chiave per il sistema. Altrimenti si otterrà un "Errore di sintassi o violazione di accesso".

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

Per laravel 4

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

Sono nuovo su laravel 4 ... Come eseguo quell'attività di aggiornamento? – roadev

16

Per laravel 5:

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

Controllare docs per ulteriori informazioni.