Mysql cakephp3中的迁移

Mysql cakephp3中的迁移,mysql,cakephp,database-migration,phinx,Mysql,Cakephp,Database Migration,Phinx,我不熟悉cakephp3。请参考并尝试使用terminal创建数据库。例如: bin/cake bake migration CreateProducts name:string description:text created modified 此命令用于创建文件,当使用以下命令时,它将在phpmyadmin中创建数据库表: bin/cake migrations migrate 但我想用添加一列来更新表..所以当我尝试更新数据库表时,它会创建另一个迁移文件..每次我想更新数据库表..这些

我不熟悉cakephp3。请参考并尝试使用terminal创建数据库。例如:

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
表中访问的此文件

因此,如果已经创建了另一个迁移文件,不要担心。 有关添加新列的信息,请参见

是的,也可以在旧迁移文件中添加新列,只需手动添加,如

->addColumn('field_name', 'types', [
                'default' => null,
                'limit' => 11,
                'null' => false,
 ])

然后重命名文件名。然后再次进行
迁移迁移
。我希望它现在可以工作。

好的。现在我的疑问已经消除了。谢谢帮助。是否可以使用:bin/cake bake migration\u snapshot Initial?迁移所有数据和列名?是的,可以。添加新列后,如果已添加所有列,则再次应用bin/cake bake migration\u snapshot初始命令。确保新的初始迁移文件位于顶部。您可以通过重命名文件来完成此操作。我想你知道20150911090111这个数字的含义。bin/cake bake migration\u snapshot Initial命令只迁移数据库表及其列,但我也想迁移所有表的行/数据…那么可能吗?好的,我理解,不可能,但你可以自己创建虚拟数据插入代码。请参阅此链接,您必须手动添加它。