000000000.go 533 B

12345678910111213141516171819202122232425262728293031
  1. package migrate
  2. import (
  3. "fmt"
  4. "golang-fave/engine/sqlw"
  5. "golang-fave/utils"
  6. )
  7. func Run(db *sqlw.DB, version int, host string) error {
  8. var last string
  9. for i, fn := range Migrations {
  10. if utils.StrToInt(i) > 1 {
  11. if version < utils.StrToInt(i) {
  12. last = i
  13. if fn != nil {
  14. fn(db, host)
  15. fmt.Printf("Migrated %s: %s\n", host, i)
  16. }
  17. }
  18. }
  19. }
  20. if last != "" {
  21. if _, err := db.Exec(`UPDATE settings SET value = ? WHERE name = 'database_version';`, last); err != nil {
  22. return err
  23. }
  24. }
  25. return nil
  26. }