2013-10-11 15 views
8

Cố gắng thiết lập di chuyển sẽ làm cho trường "hiện hoạt" hiện có của tôi có giá trị mặc định là "1".Cập nhật trình tạo lược đồ Laravel Giá trị mặc định

tôi thấy trong các tài liệu tôi có thể sử dụng một cái gì đó như:

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

Nhưng tôi đã cố gắng này trong việc di chuyển của tôi không thành công, tôi đoán vì lĩnh vực này đã tồn tại. Có cách nào để quản lý đúng các trường hiện có bằng cách sử dụng trình tạo lược đồ không?

di cư hiện tại của tôi:

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

Edit:

Từ những gì tôi đã đọc cho đến nay, điều này có thể không được thực hiện với những người xây dựng truy vấn. Nhưng khi tôi cố gắng chạy truy vấn thô:

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

Tôi đang nhận được truy vấn "phương pháp" không tồn tại ", vì vậy tôi đoán tên phương thức này đã thay đổi Tôi không thể tìm thấy nó đã được đổi thành

Trả lời

12

Hình như DB :: truy vấn() được thay đổi để DB :: statement()

này đã làm các trick:

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

Kể từ khi bạn không thay đổi tên của cột , thay vì CHANGE COLUMN, bạn có thể sử dụng MODIFY COLUMN và bỏ qua secon d hoạt động trong bảng sao kê của bạn. Câu lệnh mới như sau: Câu lệnh DB :: ("ALTER TABLE điểm MODIFY COLUMN active int (11) NOT NULL DEFAULT '1';"); 'stackoverflow.com/a/14767467/788445 – Jon

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