当我更新MYSQL 8.0.29+,我得到了新的默认算法.
INSTANT是MySQL 8.0.29的默认算法,而在此之前为INPLACE。
但XtraBackup不想使用此ALGO进行备份:
下面是关于这一点:
https://docs.percona.com/percona-xtrabackup/8.0/em/instant.html
当我在迁移中使用"addColumn"时。这是在运行AlterTable并将我的ALGO更改为INSTANT,我无法使用XtraBackup。
所以问题是:
我如何在yii2中运行这样的迁移?:
"mysql〉修改表sbtest1添加列h int(11)默认为null,算法= inplace;"
在这种结构中:
$this-〉添加列("sbtest","h",$this-〉整数(11));
或者你知道更好的解决办法。
谢谢
$this-〉添加列("sbtest","h",$this-〉整数(11));
1条答案
按热度按时间6jygbczu1#
yii\db\ColumnSchemaBuilder
有一个方法append()
,允许你把任何你想附加到列类型的SQL片段,所以,你可以试着像这样添加它:但是有一个问题,位置语句(
FIRST
,AFTER ...
)和CHECK
语句是在append()
部分之后添加的,所以append()
只有在不使用first()
,after()
或check()
方法的情况下才有效。另一种选择是给予
ColumnSchemaBuilder
,而简单地将类型写成string: