canape/sqly/sqly.go
2016-02-16 21:51:06 +01:00

42 lines
866 B
Go

package sqly
import (
"fmt"
"testing"
"time"
"github.com/jmoiron/sqlx"
"github.com/mattes/migrate/migrate"
)
// BaseTable have to be embeded in all your struct which reflect a table
type BaseTable struct {
ID int
Updated time.Time
Created time.Time
}
func RunWithLastestMigration(db *sqlx.DB, pgdsn string, t *testing.T, test func(db *sqlx.DB, t *testing.T)) {
defer func() {
allErrors, ok := migrate.DownSync(pgdsn, "../sql")
if !ok {
fmt.Println("Oh no ...")
for _, err := range allErrors {
t.Log(err)
t.Fatal("We get some errors when reset the database schema")
}
}
}()
allErrors, ok := migrate.UpSync(pgdsn, "../sql")
if !ok {
fmt.Println("Oh no ...")
for _, err := range allErrors {
t.Log(err)
t.Fatal("Impossible to run test we get some errors when initialize the database schema")
}
}
test(db, t)
}