connector

package
v1.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2023 License: Apache-2.0 Imports: 4 Imported by: 1

Documentation

Overview

Package connector contains structs and interfaces to connect to the database and get the descriptions. The main piece is the DBConnector interface that defines what specific connectors should implement. Currently a specific implementation is provided (postgres) but others could be added in the future.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DBConnector

type DBConnector interface {
	// The database type of the connector. Example: postgres
	GetDatabaseTypeName() string
	// Gets a connection to the database after some credentials are provided
	GetConnection() (*sql.DB, error)
	/*
		A SQL query that brings the information for entities. Implementations are expected to provide the following columns:
		- table_schema (Schema of the entity)
		- table_name   (Entity name)
		- table_type   (Entity type: view/table)
		- comment      (Entity comment)

	*/
	GetEntitiesQueryStatement() string
	/*
		A SQL query that brings the information for columns. Implementations are expected to provide the following columns:
		- table_schema (Schema of the entity)
		- table_name   (Entity name)
		- column_name  (The name of the column)
		- data_type    (Data type of the column)
		- comment      (Column comment)

	*/
	GetColumnsQueryStatement() string
	/*
		A SQL query that brings relations between entities (FKs). Implementations are expected to provide the following columns:
		- table_schema 			(Schema of the entity)
		- table_name   			(Entity name)
		- column_name  			(The name of the column)
		- constraint_name   	(The name of the fk)
		- foreign_table_schema	(The name of the schema of the referenced table)
		- foreign_table_name	(The name of the referenced table)
		- foreign_column_name	(The name of the pk column in the referenced table)

	*/
	GetRelationsQueryStatement() string
}

An interface defining methods needed to get the descriptions from a database.

DatabaseDescription contains a slice of `Schema`.

type Input

type Input struct {
	Host     string
	Port     int
	User     string
	Password string
	Name     string
	Schemas  []string
	Db       string
}

Input parameters.

A struct grouping the parameters for the main program, like the db credentials and the schemas names to process.

type PostgresDBConnector

type PostgresDBConnector struct {
	Input Input
}

A Postgres implementation of DBConnector.

Implement methods to connect to a postgres database and obtain information about its tables, views, and columns.

func (PostgresDBConnector) GetColumnsQueryStatement

func (dbConnector PostgresDBConnector) GetColumnsQueryStatement() string

func (PostgresDBConnector) GetConnection

func (dbConnector PostgresDBConnector) GetConnection() (*sql.DB, error)

func (PostgresDBConnector) GetDatabaseTypeName

func (dbConnector PostgresDBConnector) GetDatabaseTypeName() string

func (PostgresDBConnector) GetEntitiesQueryStatement

func (dbConnector PostgresDBConnector) GetEntitiesQueryStatement() string

func (PostgresDBConnector) GetRelationsQueryStatement added in v1.0.3

func (dbConnector PostgresDBConnector) GetRelationsQueryStatement() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL