migrations

package
v0.0.0-...-c0df949 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2018 License: Apache-2.0 Imports: 9 Imported by: 0

README

Migrations How-To

All migration files should be of the format:

[0-9]+_[add|remove]_model[_field]*.[up|down].sql

The number at the beginning of the file name should be monotonically increasing, from the last highest file number in this directory. E.g. if there is 11_add_foo_bar.up.sql, your new file should be 12_add_bar_baz.up.sql.

All *.up.sql files must have an accompanying *.down.sql file in order to pass review.

The contents of each file should contain only 1 ANSI sql query. For help, you may refer to https://github.com/mattes/migrate/blob/master/MIGRATIONS.md which illustrates some of the finer points.

After creating the file you will need to run, in the same directory as this README:

$ go generate

NOTE: You may need to go get -u github.com/jteeuwen/go-bindata/... before running go generate in order for it to work.

After running go generate, the migrations.go file should be updated. Check the updated version of this as well as the new .sql file into git.

After adding the migration, be sure to update the fields in the sql tables in sql.go up one package. For example, if you added a column foo to routes, add this field to the routes CREATE TABLE query, as well as any queries where it should be returned.

After doing this, run the test suite to make sure the sql queries work as intended and voila. The test suite will ensure that the up and down migrations work as well as a fresh db. The down migrations will not be tested against SQLite3 as it does not support ALTER TABLE DROP COLUMN, but will still be tested against postgres and MySQL.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Asset

func Asset(name string) ([]byte, error)

Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetDir

func AssetDir(name string) ([]string, error)

AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:

data/
  foo.txt
  img/
    a.png
    b.png

then AssetDir("data") would return []string{"foo.txt", "img"} AssetDir("data/img") would return []string{"a.png", "b.png"} AssetDir("foo.txt") and AssetDir("notexist") would return an error AssetDir("") will return []string{"data"}.

func AssetInfo

func AssetInfo(name string) (os.FileInfo, error)

AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetNames

func AssetNames() []string

AssetNames returns the names of the assets.

func MustAsset

func MustAsset(name string) []byte

MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.

func RestoreAsset

func RestoreAsset(dir, name string) error

RestoreAsset restores an asset under the given directory

func RestoreAssets

func RestoreAssets(dir, name string) error

RestoreAssets restores an asset under the given directory recursively

Types

This section is empty.

Jump to

Keyboard shortcuts

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