2015-01-17 14:40:22 -06:00
|
|
|
package migrations
|
|
|
|
|
|
|
|
type migration struct {
|
|
|
|
desc string
|
|
|
|
sqlite string
|
2015-01-18 06:08:59 -06:00
|
|
|
mysql string
|
2015-01-17 14:40:22 -06:00
|
|
|
verifyTable string
|
|
|
|
}
|
|
|
|
|
2015-01-18 06:08:59 -06:00
|
|
|
type columnType string
|
|
|
|
|
|
|
|
const (
|
|
|
|
DB_TYPE_STRING columnType = "String"
|
|
|
|
)
|
|
|
|
|
|
|
|
func (m *migration) getSql(dbType string) string {
|
|
|
|
switch dbType {
|
|
|
|
case "mysql":
|
|
|
|
return m.mysql
|
|
|
|
case "sqlite3":
|
|
|
|
return m.sqlite
|
|
|
|
}
|
|
|
|
|
|
|
|
panic("db type not supported")
|
|
|
|
}
|
|
|
|
|
2015-01-17 14:40:22 -06:00
|
|
|
type migrationBuilder struct {
|
|
|
|
migration *migration
|
|
|
|
}
|
|
|
|
|
|
|
|
func (b *migrationBuilder) sqlite(sql string) *migrationBuilder {
|
|
|
|
b.migration.sqlite = sql
|
|
|
|
return b
|
|
|
|
}
|
|
|
|
|
2015-01-18 06:08:59 -06:00
|
|
|
func (b *migrationBuilder) mysql(sql string) *migrationBuilder {
|
|
|
|
b.migration.mysql = sql
|
|
|
|
return b
|
|
|
|
}
|
|
|
|
|
2015-01-17 14:40:22 -06:00
|
|
|
func (b *migrationBuilder) verifyTable(name string) *migrationBuilder {
|
|
|
|
b.migration.verifyTable = name
|
|
|
|
return b
|
|
|
|
}
|
|
|
|
|
|
|
|
func (b *migrationBuilder) add() *migrationBuilder {
|
|
|
|
migrationList = append(migrationList, b.migration)
|
|
|
|
return b
|
|
|
|
}
|
|
|
|
|
|
|
|
func (b *migrationBuilder) desc(desc string) *migrationBuilder {
|
|
|
|
b.migration = &migration{desc: desc}
|
|
|
|
return b
|
|
|
|
}
|