2016-05-04 6 views
0

Как правильно изменить/обновить мою миграцию, я использую Laravel 5.1.Laravel Migrations change/update

Документы сказали, что я должен использовать изменения, чтобы обновить столбец, например:

$table->string('color', 10)->change(); 

Но где я должен поместить его в миграции и какая команду я должен использовать для обновления только просто PHP ремесленник мигрирует?

Я попытался это до сих пор:

public function up() 
{ 
    Schema::create('products', function (Blueprint $table)) { 
     $table->string('color', 5); 
    }); 

    Schema::table('products', function (Blueprint $table)) { 
     $table->string('color', 10)->change(); 
    }); 
} 

И использовал эту команду:

php artisan migrate 

Но это не изменило.

+0

Вы можете использовать 'artisan' для создания файла миграции для вас. Php artisan make: migration yourmigrationname' – Tuim

ответ

2

Во-первых, создайте новую миграцию, чтобы изменить существующие столбцы (столбцы) таблицы.

Тогда вы должны сделать это внутри up() метод в новой миграции:

Schema::table('products', function (Blueprint $table)) { 
    $table->string('color', 10)->change(); 
}); 

Таким образом, вы будете иметь две миграции. Сначала была создана таблица products с неправильной длиной строки color.

Вторая миграция изменит color длину строки от 5 до 10.

После создания секунд миграции, запустите php artisan migrate снова и изменения будут применяться к столу.

+0

Что было бы хорошим именем для этой миграции? –

+0

Таким образом, я должен позволить методу down для этой новой миграции быть пустым –

+0

Я получаю сообщение об ошибке после выполнения этого синтаксиса rror, неожиданного '>', expecting '<' –

0

Просто подумал, что я подытожу то, что я сделал для достижения этого, чтобы уточнить ответ выше.

php artisan make:migration change_yourcolumn_to_float_in_yourtable 

Затем, внутри этой миграции, в методе up(), я добавил что-то вроде следующего:

Schema::table('yourtable', function (Blueprint $table) { 
    $table->float('yourcolumn')->change(); // Changing from int to float, ie. 
}); 

Тогда вам может понадобиться добавить пакет, чтобы сделать изменения в базе данных, как это: Войдите в консоль: composer require doctrine/dbal

Тогда вы можете пойти и php artisan migrate, чтобы совершить изменение.

Смежные вопросы