CakePHP迁移创建一个新表导致重复的列名

nr7wwzry  于 2022-11-11  发布在  PHP
关注(0)|答案(3)|浏览(113)

我使用以下命令在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()函数调用,

elcex8rz

elcex8rz1#

删除ID。ID列是自动创建的,因此您不需要编写它。
bin/cake bake migration创建官方团队名称:字符串主题标识:int

bt1cpqcv

bt1cpqcv2#

名为id的主键列将被隐式添加。CakePHpp 3有关详细信息,请访问Cakephp迁移概述

xam8gpfp

xam8gpfp3#

不寻常的行为。
在cakeBook中:“名为id的主键列将被隐式添加。”但在bilder中添加到迁移文件:

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,
            ])

相关问题