replace zxq.co/ripple/hanayo
This commit is contained in:
51
vendor/github.com/osuripple/cheesegull/models/models.go
generated
vendored
Normal file
51
vendor/github.com/osuripple/cheesegull/models/models.go
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
// Package models contains everything that is needed to interface to the
|
||||
// database CheeseGull is using.
|
||||
package models
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
//go:generate go run migrations_gen.go
|
||||
|
||||
// RunMigrations brings the database up to date following the migrations.
|
||||
func RunMigrations(db *sql.DB) error {
|
||||
var version int
|
||||
var _b []byte
|
||||
err := db.QueryRow("SHOW TABLES LIKE 'db_version'").Scan(&_b)
|
||||
switch err {
|
||||
case nil:
|
||||
// fetch version from db
|
||||
err = db.QueryRow("SELECT version FROM db_version").Scan(&version)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
case sql.ErrNoRows:
|
||||
_, err = db.Exec("CREATE TABLE db_version(version INT NOT NULL)")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = db.Exec("INSERT INTO db_version(version) VALUES ('-1')")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
version = -1
|
||||
default:
|
||||
return err
|
||||
}
|
||||
|
||||
for {
|
||||
version++
|
||||
if version >= len(migrations) {
|
||||
version--
|
||||
db.Exec("UPDATE db_version SET version = ?", version)
|
||||
return nil
|
||||
}
|
||||
|
||||
s := migrations[version]
|
||||
_, err = db.Exec(s)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user