Don't allow unsupported database versions without flag

This commit is contained in:
Tulir Asokan
2019-05-28 21:29:43 +03:00
parent 1d43aeca2f
commit 063ec7873d
2 changed files with 10 additions and 1 deletions

View File

@ -26,6 +26,8 @@ const NumberOfUpgrades = 6
var upgrades [NumberOfUpgrades]upgrade
var UnsupportedDatabaseVersion = fmt.Errorf("unsupported database version")
func getVersion(dialect Dialect, db *sql.DB) (int, error) {
_, err := db.Exec("CREATE TABLE IF NOT EXISTS version (version INTEGER)")
if err != nil {
@ -65,6 +67,10 @@ func Run(log log.Logger, dialectName string, db *sql.DB) error {
return err
}
if version > NumberOfUpgrades {
return UnsupportedDatabaseVersion
}
log.Infofln("Database currently on v%d, latest: v%d", version, NumberOfUpgrades)
for i, upgrade := range upgrades[version:] {
log.Infofln("Upgrading database to v%d: %s", version+i+1, upgrade.message)