laravel9适配人大金仓(kingbase)数据库

1.创建kingbase连接类

复制 \vendor\laravel\framework\src\Illuminate\Database\Connectors\PostgresConnector.php改名KingBaseConnector.php

KingBaseConnector.php 文件修改如下

        1.1 PostgresConnector修改成KingBaseConnector

        1.2 pgsql: 改成kdb:

2.修改工产类

文件路径:\vendor\laravel\framework\src\Illuminate\Database\Connectors\ConnectionFactory.php

        2.1 createConnector方法修改如下:

        return match ($config['driver']) {
            'mysql' => new MySqlConnector,
            'pgsql' => new PostgresConnector,
            'sqlite' => new SQLiteConnector,
            'sqlsrv' => new SqlServerConnector,
            'kingbase' => new KingBaseConnector,
            default => throw new InvalidArgumentException("Unsupported driver [{$config['driver']}]."),
        };

        添加kingbase数据类型指向新创建的kingbase连接类

        2.2createConnection方法修改如下:

        return match ($driver) {
            'mysql' => new MySqlConnection($connection, $database, $prefix, $config),
            'pgsql' => new PostgresConnection($connection, $database, $prefix, $config),
            'sqlite' => new SQLiteConnection($connection, $database, $prefix, $config),
            'sqlsrv' => new SqlServerConnection($connection, $database, $prefix, $config),
            'kingbase' => new KingBaseConnection($connection, $database, $prefix, $config),
            default => throw new InvalidArgumentException("Unsupported driver [{$driver}]."),
        };

         路径:\vendor\laravel\framework\src\Illuminate\Database\

        添加kingbase数据类型指向,复制PostgresConnection.php类改名KingBaseConnection.php

3. 修改数据库驱动

        3.1新建kingbase驱动类如下

<?php

namespace Illuminate\Database\PDO;

use Doctrine\DBAL\Driver\AbstractPostgreSQLDriver;
use Illuminate\Database\PDO\Concerns\ConnectsToDatabase;

class KingBaseDriver extends AbstractPostgreSQLDriver
{
    use ConnectsToDatabase;

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return 'pdo_kdb';
    }
}

        3.2修改驱动类指向

      

    protected function getDoctrineDriver()
    {
        return new KingBaseDriver;
    }

4.修改database配置

        4.1 修改/config/database.php配置文件,添加kingbase配置

        'kingbase' => [
            'driver' => 'kingbase',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '5432'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => env('DB_PREFIX', ''),
            'prefix_indexes' => true,
            'search_path' => 'public',
            'sslmode' => 'prefer',
        ],

        4.2修改.env DB配置。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值