rezon73/dbal-vertica-driver

Doctrine DBAL 驱动程序,用于 Laravel 中的 Vertica

1.4.3 2020-11-16 20:46 UTC

This package is not auto-updated.

Last update: 2024-09-17 15:13:55 UTC


README

Doctrine DBAL 连接器驱动程序,适用于 Vertica。 适用于 Laravel / Lumen

要求

  • php >= 7.2
  • php_odbc 扩展
  • Vertica 驱动程序
  • Doctrine 2 DBAL

安装

PHP 扩展
apt-get install php-odbc php-pdo php-json
Vertica 驱动程序

使 ODBC 和 Vertica 驱动程序协同工作

  • 从官方网站下载并解压 Vertica 驱动程序 https://my.vertica.com/vertica-client-drivers/(它应与您的 Vertica Db 版本匹配)
  • 在 /opt/vertica/ 下解压驱动程序
  • 创建/编辑文件:/etc/odbc.ini(《示例》)
  • 创建/编辑文件:/etc/odbcinst.ini(《示例》)
  • 创建/编辑文件:/etc/vertica.ini(《示例》)
其余部分
  • 添加到您的 composer.json 文件中
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/rezon73/dbal-vertica-driver.git"
        }
    ]
composer install

Laravel 中的集成

.env
DB_HOST_VERTICA=127.0.0.1
#DB_PORT_VERTICA=5433 (DONT SET PORT! IT MUST BE EXACTLY INTEGER! GETTING FROM dafaults in )
DB_DATABASE_VERTICA=dbname
DB_USERNAME_VERTICA=username
DB_PASSWORD_VERTICA=password
config/database.php
<?php
return [
    'connections' => [
        'vertica' => [
            'driver' => 'vertica',
            'host' => env('DB_HOST_VERTICA', '127.0.0.1'),
            'port' => env('DB_PORT_VERTICA', 5433), //EXACTLY DIGITS, NOT STRING
            'database' => env('DB_DATABASE_VERTICA', 'forge'),
            'username' => env('DB_USERNAME_VERTICA', 'forge'),
            'password' => env('DB_PASSWORD_VERTICA', ''),
            'schema' => 'public',
            'sslmode' => 'allow',
            'options' => [
                PDO::ATTR_EMULATE_PREPARES => false,
            ]
        ]
    ];
app/Providers/AppServiceProvider.php
<?php
class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        App::bind('db.connector.vertica', function () {
            return new VerticaDriver;
        });
        DB::resolverFor('vertica', function ($connection, $database, $prefix, $config) {
            return new VerticaConnection($connection, $database, $prefix, $config);
        });
    }
}