309 lines
14 KiB
PHP
309 lines
14 KiB
PHP
<?php
|
|
|
|
use think\admin\extend\PhinxExtend;
|
|
use think\migration\Migrator;
|
|
|
|
@set_time_limit(0);
|
|
@ini_set('memory_limit', -1);
|
|
|
|
class InstallSystemTable extends Migrator
|
|
{
|
|
|
|
/**
|
|
* 创建数据库
|
|
*/
|
|
public function change()
|
|
{
|
|
$this->_create_system_auth();
|
|
$this->_create_system_auth_node();
|
|
$this->_create_system_base();
|
|
$this->_create_system_config();
|
|
$this->_create_system_data();
|
|
$this->_create_system_file();
|
|
$this->_create_system_menu();
|
|
$this->_create_system_oplog();
|
|
$this->_create_system_queue();
|
|
$this->_create_system_user();
|
|
}
|
|
|
|
/**
|
|
* 创建数据对象
|
|
* @class SystemAuth
|
|
* @table system_auth
|
|
* @return void
|
|
*/
|
|
private function _create_system_auth()
|
|
{
|
|
// 创建数据表对象
|
|
$table = $this->table('system_auth', [
|
|
'engine' => 'InnoDB', 'collation' => 'utf8mb4_general_ci', 'comment' => '系统-权限',
|
|
]);
|
|
// 创建或更新数据表
|
|
PhinxExtend::upgrade($table, [
|
|
['title', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '权限名称']],
|
|
['desc', 'string', ['limit' => 500, 'default' => '', 'null' => true, 'comment' => '备注说明']],
|
|
['sort', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '排序权重']],
|
|
['status', 'integer', ['default' => '1', 'null' => true, 'comment' => '权限状态(1使用,0禁用)']],
|
|
['create_at', 'timestamp', ['default' => 'CURRENT_TIMESTAMP', 'null' => true, 'comment' => '创建时间']],
|
|
['utype', 'string', ['limit' => 50, 'default' => '', 'null' => true, 'comment' => '身份权限']],
|
|
], [
|
|
'sort', 'title', 'status',
|
|
], false);
|
|
}
|
|
|
|
/**
|
|
* 创建数据对象
|
|
* @class SystemAuthNode
|
|
* @table system_auth_node
|
|
* @return void
|
|
*/
|
|
private function _create_system_auth_node()
|
|
{
|
|
// 创建数据表对象
|
|
$table = $this->table('system_auth_node', [
|
|
'engine' => 'InnoDB', 'collation' => 'utf8mb4_general_ci', 'comment' => '系统-授权',
|
|
]);
|
|
// 创建或更新数据表
|
|
PhinxExtend::upgrade($table, [
|
|
['auth', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '角色']],
|
|
['node', 'string', ['limit' => 200, 'default' => '', 'null' => true, 'comment' => '节点']],
|
|
], [
|
|
'auth', 'node',
|
|
], false);
|
|
}
|
|
|
|
/**
|
|
* 创建数据对象
|
|
* @class SystemBase
|
|
* @table system_base
|
|
* @return void
|
|
*/
|
|
private function _create_system_base()
|
|
{
|
|
// 创建数据表对象
|
|
$table = $this->table('system_base', [
|
|
'engine' => 'InnoDB', 'collation' => 'utf8mb4_general_ci', 'comment' => '系统-字典',
|
|
]);
|
|
// 创建或更新数据表
|
|
PhinxExtend::upgrade($table, [
|
|
['type', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '数据类型']],
|
|
['code', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '数据代码']],
|
|
['name', 'string', ['limit' => 500, 'default' => '', 'null' => true, 'comment' => '数据名称']],
|
|
['content', 'text', ['default' => NULL, 'null' => true, 'comment' => '数据内容']],
|
|
['sort', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '排序权重']],
|
|
['status', 'integer', ['default' => '1', 'null' => true, 'comment' => '数据状态(0禁用,1启动)']],
|
|
['deleted', 'integer', ['default' => '0', 'null' => true, 'comment' => '删除状态(0正常,1已删)']],
|
|
['deleted_at', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '删除时间']],
|
|
['deleted_by', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '删除用户']],
|
|
['create_at', 'timestamp', ['default' => 'CURRENT_TIMESTAMP', 'null' => true, 'comment' => '创建时间']],
|
|
], [
|
|
'type', 'code', 'name', 'sort', 'status', 'deleted',
|
|
], false);
|
|
}
|
|
|
|
/**
|
|
* 创建数据对象
|
|
* @class SystemConfig
|
|
* @table system_config
|
|
* @return void
|
|
*/
|
|
private function _create_system_config()
|
|
{
|
|
// 创建数据表对象
|
|
$table = $this->table('system_config', [
|
|
'engine' => 'InnoDB', 'collation' => 'utf8mb4_general_ci', 'comment' => '系统-配置',
|
|
]);
|
|
// 创建或更新数据表
|
|
PhinxExtend::upgrade($table, [
|
|
['type', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '配置分类']],
|
|
['name', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '配置名称']],
|
|
['value', 'string', ['limit' => 2048, 'default' => '', 'null' => true, 'comment' => '配置内容']],
|
|
], [
|
|
'type', 'name',
|
|
], false);
|
|
}
|
|
|
|
/**
|
|
* 创建数据对象
|
|
* @class SystemData
|
|
* @table system_data
|
|
* @return void
|
|
*/
|
|
private function _create_system_data()
|
|
{
|
|
// 创建数据表对象
|
|
$table = $this->table('system_data', [
|
|
'engine' => 'InnoDB', 'collation' => 'utf8mb4_general_ci', 'comment' => '系统-数据',
|
|
]);
|
|
// 创建或更新数据表
|
|
PhinxExtend::upgrade($table, [
|
|
['name', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '配置名']],
|
|
['value', 'text', ['default' => NULL, 'null' => true, 'comment' => '配置值']],
|
|
['create_time', 'datetime', ['default' => NULL, 'null' => true, 'comment' => '创建时间']],
|
|
['update_time', 'datetime', ['default' => NULL, 'null' => true, 'comment' => '更新时间']],
|
|
], [
|
|
'name', 'create_time',
|
|
], false);
|
|
}
|
|
|
|
/**
|
|
* 创建数据对象
|
|
* @class SystemFile
|
|
* @table system_file
|
|
* @return void
|
|
*/
|
|
private function _create_system_file()
|
|
{
|
|
// 创建数据表对象
|
|
$table = $this->table('system_file', [
|
|
'engine' => 'InnoDB', 'collation' => 'utf8mb4_general_ci', 'comment' => '系统-文件',
|
|
]);
|
|
// 创建或更新数据表
|
|
PhinxExtend::upgrade($table, [
|
|
['type', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '上传类型']],
|
|
['hash', 'string', ['limit' => 32, 'default' => '', 'null' => true, 'comment' => '文件哈希']],
|
|
['tags', 'string', ['limit' => 50, 'default' => '', 'null' => true, 'comment' => '文件标签']],
|
|
['name', 'string', ['limit' => 180, 'default' => '', 'null' => true, 'comment' => '文件名称']],
|
|
['xext', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '文件后缀']],
|
|
['xurl', 'string', ['limit' => 500, 'default' => '', 'null' => true, 'comment' => '访问链接']],
|
|
['xkey', 'string', ['limit' => 500, 'default' => '', 'null' => true, 'comment' => '文件路径']],
|
|
['mime', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '文件类型']],
|
|
['size', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '文件大小']],
|
|
['uuid', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '用户编号']],
|
|
['unid', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '会员编号']],
|
|
['isfast', 'integer', ['default' => '0', 'null' => true, 'comment' => '是否秒传']],
|
|
['issafe', 'integer', ['default' => '0', 'null' => true, 'comment' => '安全模式']],
|
|
['status', 'integer', ['default' => '1', 'null' => true, 'comment' => '上传状态(1悬空,2落地)']],
|
|
['create_at', 'datetime', ['default' => NULL, 'null' => true, 'comment' => '创建时间']],
|
|
['update_at', 'datetime', ['default' => NULL, 'null' => true, 'comment' => '更新时间']],
|
|
], [
|
|
'type', 'hash', 'uuid', 'xext', 'unid', 'tags', 'name', 'status', 'issafe', 'isfast', 'create_at',
|
|
], false);
|
|
}
|
|
|
|
/**
|
|
* 创建数据对象
|
|
* @class SystemMenu
|
|
* @table system_menu
|
|
* @return void
|
|
*/
|
|
private function _create_system_menu()
|
|
{
|
|
// 创建数据表对象
|
|
$table = $this->table('system_menu', [
|
|
'engine' => 'InnoDB', 'collation' => 'utf8mb4_general_ci', 'comment' => '系统-菜单',
|
|
]);
|
|
// 创建或更新数据表
|
|
PhinxExtend::upgrade($table, [
|
|
['pid', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '上级ID']],
|
|
['title', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '菜单名称']],
|
|
['icon', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '菜单图标']],
|
|
['node', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '节点代码']],
|
|
['url', 'string', ['limit' => 400, 'default' => '', 'null' => true, 'comment' => '链接节点']],
|
|
['params', 'string', ['limit' => 500, 'default' => '', 'null' => true, 'comment' => '链接参数']],
|
|
['target', 'string', ['limit' => 20, 'default' => '_self', 'null' => true, 'comment' => '打开方式']],
|
|
['sort', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '排序权重']],
|
|
['status', 'integer', ['default' => '1', 'null' => true, 'comment' => '状态(0:禁用,1:启用)']],
|
|
['create_at', 'timestamp', ['default' => 'CURRENT_TIMESTAMP', 'null' => true, 'comment' => '创建时间']],
|
|
], [
|
|
'pid', 'node', 'sort', 'status',
|
|
], false);
|
|
}
|
|
|
|
/**
|
|
* 创建数据对象
|
|
* @class SystemOplog
|
|
* @table system_oplog
|
|
* @return void
|
|
*/
|
|
private function _create_system_oplog()
|
|
{
|
|
// 创建数据表对象
|
|
$table = $this->table('system_oplog', [
|
|
'engine' => 'InnoDB', 'collation' => 'utf8mb4_general_ci', 'comment' => '系统-日志',
|
|
]);
|
|
// 创建或更新数据表
|
|
PhinxExtend::upgrade($table, [
|
|
['node', 'string', ['limit' => 200, 'default' => '', 'null' => false, 'comment' => '当前操作节点']],
|
|
['geoip', 'string', ['limit' => 15, 'default' => '', 'null' => false, 'comment' => '操作者IP地址']],
|
|
['action', 'string', ['limit' => 200, 'default' => '', 'null' => false, 'comment' => '操作行为名称']],
|
|
['content', 'string', ['limit' => 1024, 'default' => '', 'null' => false, 'comment' => '操作内容描述']],
|
|
['username', 'string', ['limit' => 50, 'default' => '', 'null' => false, 'comment' => '操作人用户名']],
|
|
['create_at', 'timestamp', ['default' => 'CURRENT_TIMESTAMP', 'null' => false, 'comment' => '创建时间']],
|
|
], [
|
|
'create_at',
|
|
], false);
|
|
}
|
|
|
|
/**
|
|
* 创建数据对象
|
|
* @class SystemQueue
|
|
* @table system_queue
|
|
* @return void
|
|
*/
|
|
private function _create_system_queue()
|
|
{
|
|
// 创建数据表对象
|
|
$table = $this->table('system_queue', [
|
|
'engine' => 'InnoDB', 'collation' => 'utf8mb4_general_ci', 'comment' => '系统-任务',
|
|
]);
|
|
// 创建或更新数据表
|
|
PhinxExtend::upgrade($table, [
|
|
['code', 'string', ['limit' => 20, 'default' => '', 'null' => false, 'comment' => '任务编号']],
|
|
['title', 'string', ['limit' => 100, 'default' => '', 'null' => false, 'comment' => '任务名称']],
|
|
['command', 'string', ['limit' => 500, 'default' => '', 'null' => true, 'comment' => '执行指令']],
|
|
['exec_pid', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '执行进程']],
|
|
['exec_data', 'text', ['default' => NULL, 'null' => true, 'comment' => '执行参数']],
|
|
['exec_time', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '执行时间']],
|
|
['exec_desc', 'string', ['limit' => 500, 'default' => '', 'null' => true, 'comment' => '执行描述']],
|
|
['enter_time', 'decimal', ['precision' => 20, 'scale' => 4, 'default' => '0.0000', 'null' => true, 'comment' => '开始时间']],
|
|
['outer_time', 'decimal', ['precision' => 20, 'scale' => 4, 'default' => '0.0000', 'null' => true, 'comment' => '结束时间']],
|
|
['loops_time', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '循环时间']],
|
|
['attempts', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '执行次数']],
|
|
['message', 'text', ['default' => NULL, 'null' => true, 'comment' => '最新消息']],
|
|
['rscript', 'integer', ['default' => '1', 'null' => true, 'comment' => '任务类型(0单例,1多例)']],
|
|
['status', 'integer', ['default' => '1', 'null' => true, 'comment' => '任务状态(1新任务,2处理中,3成功,4失败)']],
|
|
['create_at', 'timestamp', ['default' => 'CURRENT_TIMESTAMP', 'null' => false, 'comment' => '创建时间']],
|
|
], [
|
|
'code', 'title', 'status', 'rscript', 'create_at', 'exec_time',
|
|
], false);
|
|
}
|
|
|
|
/**
|
|
* 创建数据对象
|
|
* @class SystemUser
|
|
* @table system_user
|
|
* @return void
|
|
*/
|
|
private function _create_system_user()
|
|
{
|
|
// 创建数据表对象
|
|
$table = $this->table('system_user', [
|
|
'engine' => 'InnoDB', 'collation' => 'utf8mb4_general_ci', 'comment' => '系统-用户',
|
|
]);
|
|
// 创建或更新数据表
|
|
PhinxExtend::upgrade($table, [
|
|
['username', 'string', ['limit' => 50, 'default' => '', 'null' => true, 'comment' => '用户账号']],
|
|
['password', 'string', ['limit' => 32, 'default' => '', 'null' => true, 'comment' => '用户密码']],
|
|
['nickname', 'string', ['limit' => 50, 'default' => '', 'null' => true, 'comment' => '用户昵称']],
|
|
['headimg', 'string', ['limit' => 255, 'default' => '', 'null' => true, 'comment' => '头像地址']],
|
|
['authorize', 'string', ['limit' => 255, 'default' => '', 'null' => true, 'comment' => '权限授权']],
|
|
['contact_qq', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '联系QQ']],
|
|
['contact_mail', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '联系邮箱']],
|
|
['contact_phone', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '联系手机']],
|
|
['login_ip', 'string', ['limit' => 255, 'default' => '', 'null' => true, 'comment' => '登录地址']],
|
|
['login_at', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '登录时间']],
|
|
['login_num', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '登录次数']],
|
|
['describe', 'string', ['limit' => 255, 'default' => '', 'null' => true, 'comment' => '备注说明']],
|
|
['status', 'integer', ['default' => '1', 'null' => true, 'comment' => '状态(0禁用,1启用)']],
|
|
['sort', 'biginteger', ['default' => '0', 'null' => true, 'comment' => '排序权重']],
|
|
['is_deleted', 'integer', ['default' => '0', 'null' => true, 'comment' => '删除(1删除,0未删)']],
|
|
['create_at', 'timestamp', ['default' => 'CURRENT_TIMESTAMP', 'null' => true, 'comment' => '创建时间']],
|
|
['usertype', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '用户类型']],
|
|
], [
|
|
'sort', 'status', 'username', 'is_deleted',
|
|
], false);
|
|
}
|
|
|
|
}
|