Categorygithub.com/gopi-frame/database
repositorypackage
0.0.0-20241219020713-730da8537660
Repository: https://github.com/gopi-frame/database.git
Documentation: pkg.go.dev

# README

Database

Go Reference Go codecov Go Report Card Mit License

Package database provides a database abstraction client.

This package is based on gorm

Installation

go get -u github.com/gopi-frame/database

Import

import "github.com/gopi-frame/database"

Usage

package main

import (
    "github.com/gopi-frame/database"
    
    _ "github.com/gopi-frame/database/sqlite"
    // _ "github.com/gopi-frame/database/mysql"
    // _ "github.com/gopi-frame/database/postgres"
    // _ "github.com/gopi-frame/database/sqlserver"
)

func main() {
    db, err := database.Connect("sqlite", map[string]any{
        "dsn": "file:test.db",
    })
    if err!= nil {
        panic(err)
    }
}

Drivers

How to create a custom driver

To create a custom driver, just implement the database.Driver interface and register it using database.Register.

Example

package main

import (
    "github.com/gopi-frame/database"
    "gorm.io/gorm"
)

var driverName = "custom"

func init() {
    database.Register(driverName, &CustomDriver{})
}

type CustomDriver struct{}

func (d *CustomDriver) Open(options map[string]any) (gorm.Dialector, error) {
    var d gorm.Dialector
    // implement your driver here
    return d, nil
}