4 migrate "github.com/go-pg/migrations"
6 "github.com/go-pg/pg/orm"
7 "github.com/jloup/utils"
12 var log = utils.StandardL().WithField("module", "db")
14 type DBConfig struct {
21 func Init(config DBConfig) {
28 log.Fatalf("cannot migratedb '%v'\n", err)
32 func migratedb() error {
33 /* Remove after first MEP */
34 version, err := migrate.Version(DB)
40 return migrate.SetVersion(DB, 1)
44 mig := make([]migrate.Migration, 0)
46 for _, migration := range migrations {
47 mig = append(mig, migrate.Migration{
48 Version: migration.Version,
49 Up: func(db orm.DB) error {
50 for _, query := range migration.Up {
51 _, err := db.Exec(query)
59 Down: func(db orm.DB) error {
60 for _, query := range migration.Down {
61 _, err := db.Exec(query)
72 oldVersion, newVersion, err := migrate.RunMigrations(DB, mig, "up")
74 if oldVersion != newVersion {
75 log.Infof("Migrate DB: %v -> %v", oldVersion, newVersion)
77 log.Infof("DB up-to-date: version '%v'", newVersion)
82 func connect(config DBConfig) *pg.DB {
83 return pg.Connect(&pg.Options{
85 Password: config.Password,
86 Database: config.Database,