think-migration/README.md
2019-08-27 23:04:22 +08:00

54 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# thinkphp5.1 数据库迁移工具
## 安装
~~~
composer require topthink/think-migration
~~~
## 修改v2.0.3
* 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;
```