CakePHP Migration Создание новой таблицы приводит к дублированию имени столбца
Я создал новый скрипт миграции на CakePHP 3, используя следующую команду
bin/cake bake migration CreateOfficialTeams id:int name:string topic_id:int
id
поле должно быть первичным ключом, и topic_id
это внешний ключ. Сценарий выходит так, как я хочу, кроме topic_id
это строка по какой-то причине, но я исправляю это вручную.
Когда я пытаюсь запустить скрипт, я получаю сообщение об ошибке:
Exception: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'id' in [/home/bradygp/workspace/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php, line 306]
2017-02-27 21:52:16 Error [PDOException] SQLSTATE[45S21]: Column already exists: 1060 Duplicate column name 'id'
У меня есть другие таблицы с именем столбца 'id', но это новая таблица, которая называется create()
функция,
3 ответа
Столбец первичного ключа с именем id будет добавлен неявно. CakePHpp 3 Более подробную информацию вы можете найти в обзоре Cakephp Migration.
Удалить ID. Столбец ID создается автоматически, поэтому вам не нужно его писать.
Миграция бина / пирога испечь CreateOfficialTeams имя: строка topic_id:int
Необычное поведение.
В CakeBook: «Столбец первичного ключа с именем id будет добавлен неявно». но в билдере добавляет в файлы миграции:
bin/cake bake migration_spanshot Initial
Файл результата:
$this->table('admin_menus')
->addColumn('id', 'integer', [
'autoIncrement' => true,
'default' => null,
'limit' => 11,
'null' => false,
])
->addPrimaryKey(['id'])
->addColumn('role_user_id', 'integer', [
'default' => '0',
'limit' => 11,
'null' => true,
])