postgres

package
v2.1.1 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2020 License: MIT Imports: 8 Imported by: 1

README

PostgreSQL Driver

Build Status GoDoc

  • Runs migrations in transactions. That means that if a migration fails, it will be safely rolled back.
  • Tries to return helpful error messages.
  • Stores migration version details in table schema_migrations. This table will be auto-generated.

Usage

journey -url postgres://user@host:port/database -path ./db/migrations create add_field_to_table
journey -url postgres://user@host:port/database -path ./db/migrations up
journey help # for more info

## Disable DDL transactions

Some queries, like `alter type ... add value` cannot be executed inside a transaction block.
Since all migrations are executed in a transaction block by default (per migration file), a special option must be specified inside the migration file:

```sql
-- disable_ddl_transaction
alter type ...;

The option disable_ddl_transaction must be in a sql comment of the first line of the migration file.

Please note that you can't put several alter type ... add value ... in a single file. Doing so will result in a ERROR 25001: ALTER TYPE ... ADD cannot be executed from a function or multi-command string sql exception during migration.

Since the file will be executed without transaction, it's probably not a good idea to exec more than one statement anyway. If the last statement of the file fails, chances to run again the migration without error will be very limited.

Documentation

Overview

Package postgres implements the Driver interface.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Open

func Open(url string) (driver.Driver, error)

Open opens and verifies the database handle.

Types

type Driver

type Driver struct {
	// contains filtered or unexported fields
}

Driver is the postgres driver for journey.

func (*Driver) Close

func (driver *Driver) Close() error

Close closes the database handle.

func (*Driver) Execute

func (driver *Driver) Execute(statement string) error

Execute a SQL statement

func (*Driver) Migrate

func (driver *Driver) Migrate(f file.File) (err error)

Migrate performs the migration of any one file.

func (*Driver) SetDB

func (driver *Driver) SetDB(db *sql.DB)

SetDB replaces the current database handle.

func (*Driver) Version

func (driver *Driver) Version() (file.Version, error)

Version returns the current migration version.

func (*Driver) Versions

func (driver *Driver) Versions() (file.Versions, error)

Versions returns the list of applied migrations.

Jump to

Keyboard shortcuts

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