HiveNetNoSql.pgsql module

PostgreSQL的HiveNetNoSql实现模块

class HiveNetNoSql.pgsql.PgSQLNosqlDriver(connect_config: dict = {}, pool_config: dict = {}, driver_config: dict = {})[源代码]

基类:NosqlAIOPoolDriver

PostgreSQL数据库MySQL驱动

__init__(connect_config: dict = {}, pool_config: dict = {}, driver_config: dict = {})[源代码]

初始化驱动

参数
  • connect_config (dict) –

    default={}, 数据库的连接参数

    host {str} - 数据库主机地址, 默认为’localhost’

    port {int} - 连接数据库的端口, 默认为5432

    usedb {str} - 登录后使用的数据库(其实是schema), 默认为’public’

    注: postgresql的连接对象不支持切换真实数据库, 因此驱动所指的数据库其实是schema

    username {str} - 登录验证用户

    password {str} - 登录验证密码

    dbname {str} - 登录的真实数据库, 默认为’postgres’

    注: 过程中无法切换真实数据库, 如果需要切换要重新创建驱动对象

    connect_on_init {bool} - 是否启动时直接连接数据库

    connect_timeout {float} - 连接数据库的超时时间, 单位为秒, 默认为20

    default_str_len {int} - 默认的字符串类型长度, 默认为30

    …驱动实现类自定义支持的参数

    transaction_share_cursor {bool} - 进行事务处理是否复用同一个游标对象, 默认为True

    psycopg2.connect 支持的其他参数…

  • pool_config (dict) –

    default={}, 连接池配置

    max_size {int} - 连接池的最大大小, 默认为100

    min_size {int} - 连接池维持的最小连接数量, 默认为0

    max_idle_time {float} - 连接被移除前的最大空闲时间, 单位为秒, 默认为None

    wait_queue_timeout {float} - 在没有空闲连接的时候, 请求连接所等待的超时时间, 单位为秒, 默认为None(不超时)

    …驱动实现类自定义支持的参数

    注: 其他参数为AIOConnectionPool所支持的参数

  • driver_config (dict) –

    default={}, 驱动配置

    init_db {dict} - 要在启动驱动时创建的数据库

    {

    ‘数据库名’: {

    ‘index_only’: False, # 是否仅用于索引, 不创建

    ’comment’: ‘’, # 数据库注释

    ’args’: [], # 创建数据库的args参数

    ’kwargs’: {} #创建数据库的kwargs参数

    }

    }

    init_collections {dict} - 要在启动驱动时创建的集合(表)

    {

    ‘数据库名’: {

    ‘集合名’: {

    ‘index_only’: False, # 是否仅用于索引, 不创建

    ’comment’: ‘’, # 集合注释

    ’indexs’: {索引字典}, ‘fixed_col_define’: {固定字段定义}, ‘partition’: {表分区定义}

    }

    },

    }

    init_yaml_file {str} - 要在启动时创建的数据库和集合(表)配置yaml文件

    注1: 该参数用于将init_db和init_collections参数内容放置的配置文件中, 如果参数有值则忽略前面两个参数

    注2: 配置文件为init_db和init_collections两个字典, 内容与这两个参数一致

    logger {Logger} - 传入驱动的日志对象

    ignore_index_error {bool} - 是否忽略索引创建的异常, 默认为True

    debug {bool} - 指定是否debug模式, 默认为False

    close_action {str} - 关闭连接时自动处理动作, None-不处理, ‘commit’-自动提交, ‘rollback’-自动回滚

    regexp_ignore_case {bool} - 正则表达式是否忽略大小写, 默认为False

async create_collection(collection: str, indexs: dict = None, fixed_col_define: dict = None, comment: str = None, **kwargs)[源代码]

创建集合(相当于关系型数据库的表, 如果不存在则创建)

注意: 所有集合都有必须有 ‘_id’ 这个记录的唯一主键字段

参数
  • collection (str) – 集合名(表名)

  • indexs (dict) –

    default=None, 要创建的索引字典, 格式为:

    {

    ‘索引名’: {

    –索引的字段清单

    ’keys’: {

    ‘字段名’: { ‘asc’: 是否升序(1为升序, -1为降序) },

    }

    —创建参数

    ’paras’: {

    ‘unique’: 是否唯一索引(True/False),

    …驱动实现类自定义支持的参数

    }

    },

    }

  • fixed_col_define (dict) –

    default=None, 固定字段定义(只有固定字段才能进行索引), 格式如下:

    {

    ‘字段名’: {

    ‘type’: ‘字段类型(str, int, float, bool, json)’,

    ’len’: 字段长度,

    ’nullable’: True, # 是否可空

    ’default’: 默认值,

    ’comment’: ‘字段注释’

    },

    }

  • comment (str) – default=None, 集合注释

  • 实现驱动自定义支持的参数 (-) –

async switch_db(name: str, *args, **kwargs)[源代码]

切换当前数据库到指定数据库

参数

name (str) – 数据库名

class HiveNetNoSql.pgsql.PgSQLPoolConnection(pool: AIOConnectionPool, creator: Any, args: list = [], kwargs: dict = {}, logger: Logger = None)[源代码]

基类:PoolConnectionFW

PostgreSQL连接池连接对象