2017-09-15 08:24:00 +00:00
|
|
|
|
# thinkphp5.1 数据库迁移工具
|
2016-12-18 13:49:35 +00:00
|
|
|
|
|
|
|
|
|
## 安装
|
|
|
|
|
~~~
|
|
|
|
|
composer require topthink/think-migration
|
|
|
|
|
~~~
|
2019-08-26 16:10:47 +00:00
|
|
|
|
|
2019-08-26 16:18:04 +00:00
|
|
|
|
## 修改(v2.0.3)
|
2019-08-26 16:10:47 +00:00
|
|
|
|
* Column的类型报错
|
|
|
|
|
|
|
|
|
|
* PdoAdapter.php中的getColumnTypes方法中添加了smallinteger的数组内容,
|
|
|
|
|
这里修改后可以过滤掉Column的类型报错
|
|
|
|
|
* mysql的类型不支持报错
|
|
|
|
|
* AdapterInterface.php中添加常量 const PHINX_TYPE_SMALL_INTEGER = 'smallinteger';
|
|
|
|
|
* MysqlAdapter.php中修改和添加getSqlType方法中的内容
|
|
|
|
|
```
|
|
|
|
|
case static::PHINX_TYPE_INTEGER:
|
|
|
|
|
if ($limit && $limit >= static::INT_TINY) {
|
|
|
|
|
$sizes = array(
|
|
|
|
|
// Order matters! Size must always be tested from longest to shortest!
|
|
|
|
|
'bigint' => static::INT_BIG,
|
|
|
|
|
'int' => static::INT_REGULAR,
|
|
|
|
|
'mediumint' => static::INT_MEDIUM,
|
|
|
|
|
'smallint' => static::INT_SMALL,
|
|
|
|
|
'tinyint' => static::INT_TINY,
|
|
|
|
|
);
|
|
|
|
|
$limits = array(
|
|
|
|
|
// 修改部分开始########
|
|
|
|
|
'smallint' => 5,
|
|
|
|
|
// 修改部分结束########
|
|
|
|
|
'int' => 11,
|
|
|
|
|
'bigint' => 20,
|
|
|
|
|
);
|
|
|
|
|
foreach ($sizes as $name => $length) {
|
|
|
|
|
if ($limit >= $length) {
|
|
|
|
|
$def = array('name' => $name);
|
|
|
|
|
if (isset($limits[$name])) {
|
|
|
|
|
$def['limit'] = $limits[$name];
|
|
|
|
|
}
|
|
|
|
|
return $def;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} elseif (!$limit) {
|
|
|
|
|
$limit = 11;
|
|
|
|
|
}
|
|
|
|
|
return array('name' => 'int', 'limit' => $limit);
|
|
|
|
|
break;
|
|
|
|
|
// 后面是添加部分
|
|
|
|
|
case static::PHINX_TYPE_SMALL_INTEGER:
|
|
|
|
|
return array('name' => 'smallint', 'limit' => 5);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
```
|