2012-12-10 25 views
16

Tôi có hai trường tôi cần tăng giới hạn ký tự. Tôi đang đọc qua tài liệu và tôi ngạc nhiên không tìm thấy tùy chọn cho nó. Có thể làm được không? Nếu không, làm thế nào tôi nên đi về giải quyết này?Chiều dài cột thay đổi trong Trình tạo lược đồ?

Tôi có thể thả cột và tạo lại nó với các thuộc tính chính xác, nhưng tôi không muốn mất bất kỳ dữ liệu nào trong cơ sở dữ liệu.

Trả lời

20

Sử dụng 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)'); 
} 

Thay MYTABLE, MYCOLUMN, new-lengthold-length.

+0

Thật hoàn hảo, cảm ơn! – qwerty

+0

Nó hoạt động trong Laravel 3. – killlinuxkill

+0

Trong Laravel 5.1, tôi phải thay đổi câu lệnh DB :: query thành DB ::. – Waqas

1

Sử dụng `` cho tên cột nếu tên là từ khóa cho hệ thống. Nếu không, bạn sẽ nhận được lỗi "Lỗi cú pháp hoặc vi phạm truy cập".

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

Đối với Laravel 4

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

Tôi mới ở laravel 4 ... Làm cách nào để chạy tác vụ cập nhật đó? – roadev

16

Đối với Laravel 5:

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

Kiểm tra docs để biết thêm.

Các vấn đề liên quan