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,
            ])
Другие вопросы по тегам