2017-02-16 58 views
0

Мне нужно добавить столбец администратора в мою пользовательскую таблицу в моей базе данных. Я создал сценарий миграции с помощью следующей команды.CakePHP Migration Script не обновляет модель таблицы

bin/cake bake migration AddAdminToUsers admin:boolean 

Это главным образом сделал то, что я хотел, я просто изменил значение по умолчанию false. Теперь мой сценарий миграции выглядит следующим образом.

<?php 
use Migrations\AbstractMigration; 

class AddAdminToUsers extends AbstractMigration 
{ 
    public function change() 
    { 
     $table = $this->table('users'); 
     $table->addColumn('admin', 'boolean', [ 
      'default' => false, 
      'null' => false 
     ]); 
     $table->update(); 
    } 
} 

Кроме того, как ни странно, я пробовал несколько раз, и каждый раз, когда я только смог запустить этот сценарий миграции один раз. Я должен удалить его и повторно испечь новый, если я хочу, чтобы другой работал.

+0

эффективный и правильный способ не будет удалять миграцию и создавать новую миграцию с тем же именем таблицы, чтобы удалить/внести изменения в таблицу – prats1411

+0

@ prats1411. Таким образом, каждый сценарий миграции может выполняться только один раз? (Если я отказываюсь от отката, я предполагаю) –

ответ

2

Когда вы выполняете миграцию, она помечается как перенесенная, и вы не можете запускать ее еще раз, если только не rollback. Откат отменяет предыдущую миграцию, и вы сможете запустить ее еще раз. Для плагина полностью используется docs, который использует cakphp для миграции.

+0

Является ли сценарий миграции, который должен обновлять модель Table Table или строго только базу данных? –

+0

строго база данных. Вы также должны повторно искупить модель или изменить ее самостоятельно после завершения миграции –