观看了一些大佬的文章做个整理记录下
参考https://blog.csdn.net/Alone_shine/article/details/130286443
安装pdo_kdb扩展 请看参考链接里 有提供网盘
新增人大金仓数据库的connenter类
1.进入项目目录 vendor\topthink\think-orm\src\db\connector\ 找到Pgsql.php 复制PgSql.php 重命名 Kingbase.php
$dsn = 'pgsql:dbname=' . $config['database'] . ';host=' . $config['hostname'];
修改为
$dsn = 'kdb:host=' . $config['hostname'] . ';dbname=' . $config['database'];
注释 // 'autoinc' => (0 === strpos($val['extra'], 'nextval(')),
2.vendor\topthink\think-orm\src\db\builder\下,复制Pgsql.php为Kingbase.php,同样修改文件中的类名为Kingbase。
3.config\database.php修改
<?php
return [
// 默认使用的数据库连接配置
'default' => env('database.driver', 'kingbase'),
// 自定义时间查询规则
'time_query_rule' => [],
// 自动写入时间戳字段
// true为自动识别类型 false关闭
// 字符串则明确指定时间字段类型 支持 int timestamp datetime date
'auto_timestamp' => true,
// 时间字段取出后的默认时间格式
'datetime_format' => 'Y-m-d H:i:s',
// 数据库连接配置信息
'connections' => [
'kingbase' => [
'type' => env('database.type', 'kingbase'),
'hostname' => env('database.hostname', '127.0.0.1'),
// 数据库名
'database' => env('database.database', 'xianqi'),
// 用户名
'username' => env('database.username', 'root'),
// 密码
'password' => env('database.password', 'rootroot'),
// 端口
'hostport' => env('database.hostport', '54321'),
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => env('database.charset', 'utf8'),
// 数据库表前缀
'prefix' => env('database.prefix', ''),
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy' => 0,
// 数据库读写是否分离 主从式有效
'rw_separate' => false,
// 读写分离后 主服务器数量
'master_num' => 1,
// 指定从服务器序号
'slave_no' => '',
// 是否严格检查字段是否存在
'fields_strict' => false,
// 是否需要断线重连
'break_reconnect' => false,
// 监听SQL
'trigger_sql' => env('app_debug', true),
// 开启字段缓存
'fields_cache' => false,
// 字段缓存路径
'schema_cache_path' => app()->getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR,
],
],
];
4.因为人大金仓是基于开源数据库 PostgreSQL 开发的,大部分功能与 PostgreSQL兼容。
我们这边用pgsql.php修改也需要使用运行一个sql文件才能正常使用。