mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2026-06-09 13:18:18 +08:00
fix: 更新数据库同步脚本索引长度处理
This commit is contained in:
parent
7cf5ba2c66
commit
47b93ca03a
@ -115,10 +115,9 @@ class PhinxExtend
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 生成索引规则
|
// 生成索引规则
|
||||||
$short = substr(md5($table->getName()), 0, 9);
|
|
||||||
foreach ($indexs as $field) {
|
foreach ($indexs as $field) {
|
||||||
if (empty($isExists) || !$table->hasIndex($field)) {
|
if (empty($isExists) || !$table->hasIndex($field)) {
|
||||||
$table->addIndex($field, ['name' => "i{$short}_{$field}"]);
|
$table->addIndex($field, ['name' => self::genIndexName($table->getName(), $field)]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$isExists ? $table->update() : $table->create();
|
$isExists ? $table->update() : $table->create();
|
||||||
@ -128,6 +127,27 @@ class PhinxExtend
|
|||||||
return $table;
|
return $table;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成索引名称.
|
||||||
|
*
|
||||||
|
* 生成规则: idx_[表名hash后4位]_[表名缩写]_[字段缩写]
|
||||||
|
* 缩写规则: 取每个下划线分隔部分的第一个字母
|
||||||
|
*
|
||||||
|
* @param string $table 表名
|
||||||
|
* @param string $name 字段名
|
||||||
|
* @return string 生成的索引名称
|
||||||
|
*/
|
||||||
|
private static function genIndexName(string $table, string $name): string
|
||||||
|
{
|
||||||
|
$getInitials = function (string $str): string {
|
||||||
|
return implode('', array_map(function ($part) {
|
||||||
|
return $part[0] ?? '';
|
||||||
|
}, explode('_', $str)));
|
||||||
|
};
|
||||||
|
return sprintf('idx_%s_%s_%s', substr(md5($table), -4), $getInitials($table), $getInitials($name));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建数据库安装脚本
|
* 创建数据库安装脚本
|
||||||
* @param array $tables
|
* @param array $tables
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user