package database import ( "database/sql" "fmt" "github.com/jackc/pgx/v5/pgconn" "github.com/jmoiron/sqlx" _ "github.com/jackc/pgx/v5/stdlib" "git.urec56.ru/urec/chat_back_go/config" ) const IntegrityErrorCode = "23505" var IntegrityError = &pgconn.PgError{Code: IntegrityErrorCode} func NewPostgres(cfg config.Postgres) (*sqlx.DB, error) { db, err := sqlx.Connect( "pgx", fmt.Sprintf( "host=%s port=%d user=%s password=%s dbname=%s sslmode=%s", cfg.Host, cfg.Port, cfg.User, cfg.Password, cfg.Dbname, cfg.Sslmode, ), ) if err != nil { return nil, err } err = db.Ping() if err != nil { return nil, err } return db, nil } func NewPostgresSql(cfg config.Postgres) (*sql.DB, error) { db, err := sql.Open( "pgx", fmt.Sprintf( "host=%s port=%d user=%s password=%s dbname=%s sslmode=%s", cfg.Host, cfg.Port, cfg.User, cfg.Password, cfg.Dbname, cfg.Sslmode, ), ) if err != nil { return nil, err } err = db.Ping() if err != nil { return nil, err } return db, nil }