У меня есть таблица базы данных, имеющая поле с логическим типом поля.Теперь, согласно новому требованию, поле должно быть изменено на тип малого целого.
Для этого я создал миграцию и добавил скрипт в тот же файл миграции, чтобы скопировать значение изстарое поле на новое поле.Тем не менее, я думаю, что это не лучший подход, которому я следовал.Может кто-нибудь, пожалуйста, помогите и посоветуйте лучший способ справиться с этим сценарием.
public function up()
{
Schema::table('skills', function (Blueprint $table) {
$table->tinyInteger('skill_type_id')->nullable()->comment = '1 for advisory skills, 2 for tools, 3 for language & framework';
});
$skill_object = (new \App\Model\Skill());
$skills = $skill_object->get();
if (_count($skills)) {
foreach($skills as $skill) {
$skill_type = 1;
if ($skill->is_tool) {
$skill_type = 2;
}
$skill_object->whereId($skill->id)->update(['skill_type_id' => $skill_type]);
}
}
}