我是cakephp3的新手。参考http://book.cakephp.org/3.0/en/migrations.html并尝试使用终端创建数据库。例如:
bin/cake bake migration CreateProducts name:string description:text created modified
这个命令创建文件,当使用下面的命令时,它在phpmyadmin中创建数据库表:
bin/cake migrations migrate
但是我想在表中添加一列,所以当我尝试更新数据库表时,它会创建另一个迁移文件。每次当我想更新数据库表时,这看起来很奇怪,因为我想更新单个表。是否有任何方法,所以我每次通过迁移更新具有相同功能的数据库表??
在使用迁移时,可以看到数据库中有一个表名为phinxlog
。在这个表中有一个字段名为version
。当你给出命令
bin/cake migrations migrate
则该表将被更新。现在看看版本字段,这里有一些数字,比如20150911090111
。这个数字实际上是在您的迁移文件中添加的,对吗?
如果这个数字已经在您的phinxlog
表中被访问,这个文件将永远不会再访问。这意味着在命令
bin/cake migrations migrate
这个命令将不适用于这个文件,它已经在pinixlog
表中被访问了。
因此,如果创建了另一个迁移文件,不要担心。要添加新列,请参见
如何通过cakephp迁移在数据库表中添加字段?
是的,也可以在旧的迁移文件中添加新列,只需手动添加,如
->addColumn('field_name', 'types', [
'default' => null,
'limit' => 11,
'null' => false,
])
然后重命名文件名。然后再给migration migrate
。