28 lines
684 B
Go
28 lines
684 B
Go
package sqaffold
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"code.aneur.in/go/version"
|
|
)
|
|
|
|
func (s *Scaffold) GetVersion(appName string) (*version.Version, error) {
|
|
row, err := s.QueryOne("select version from sqaffold_apps where name = ?", appName)
|
|
switch {
|
|
case err == nil:
|
|
case err.Error() == "SQL logic error: no such table: sqaffold_apps (1)":
|
|
fallthrough
|
|
case errors.Is(err, ErrNoRows):
|
|
return version.Parse("0")
|
|
default:
|
|
return nil, Err(err)
|
|
}
|
|
|
|
return version.Parse(row.String("version"))
|
|
}
|
|
|
|
func (s *Scaffold) setVersion(appName string, version *version.Version) error {
|
|
_, err := s.Exec("insert into sqaffold_apps (name, version) values (?, ?)", appName, version.Text)
|
|
return err
|
|
}
|