Documentation ¶
Overview ¶
Package vfs contains a driver that reads migrations from a virtual file system.
Implementations of the filesystem interface that read from zip files and maps, as well as the definition of the filesystem interface can be found in the golang.org/x/tools/godoc/vfs package.
Example (Mapfs) ¶
package main import ( "github.com/golang-migrate/migrate" "github.com/golang-migrate/migrate/source/godoc_vfs" "golang.org/x/tools/godoc/vfs/mapfs" ) func main() { fs := mapfs.New(map[string]string{ "1_foobar.up.sql": "1 up", "1_foobar.down.sql": "1 down", "3_foobar.up.sql": "3 up", "4_foobar.up.sql": "4 up", "4_foobar.down.sql": "4 down", "5_foobar.down.sql": "5 down", "7_foobar.up.sql": "7 up", "7_foobar.down.sql": "7 down", }) d, err := godoc_vfs.WithInstance(fs, "") if err != nil { panic("bad migrations found!") } m, err := migrate.NewWithSourceInstance("godoc-vfs", d, "database://foobar") if err != nil { panic("error creating the migrations") } m.Up() }
Output:
Index ¶
- func WithInstance(fs vfs.FileSystem, searchPath string) (source.Driver, error)
- type VFS
- func (b *VFS) Close() error
- func (b *VFS) First() (version uint, err error)
- func (b *VFS) Next(version uint) (nextVersion uint, err error)
- func (b *VFS) Open(url string) (source.Driver, error)
- func (b *VFS) Prev(version uint) (prevVersion uint, err error)
- func (b *VFS) ReadDown(version uint) (r io.ReadCloser, identifier string, err error)
- func (b *VFS) ReadUp(version uint) (r io.ReadCloser, identifier string, err error)
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithInstance ¶
WithInstance creates a new driver from a virtual file system. If a tree named searchPath exists in the virtual filesystem, WithInstance searches for migration files there. It defaults to "/".
Types ¶
type VFS ¶
type VFS struct {
// contains filtered or unexported fields
}
VFS is an implementation of driver that returns migrations from a virtual file system.
func (*VFS) Close ¶
Close implements the source.Driver interface for VFS. It is a no-op and should not be used.
func (*VFS) First ¶
First returns the first migration verion found in the file system. If no version is available os.ErrNotExist is returned.
func (*VFS) Next ¶
Prev returns the next version available to the driver. If no previous version is available os.ErrNotExist is returned.
func (*VFS) Open ¶
Open implements the source.Driver interface for VFS.
Calling this function panics, instead use the WithInstance function. See the package level documentation for an example.
func (*VFS) Prev ¶
Prev returns the previous version available to the driver. If no previous version is available os.ErrNotExist is returned.