Merge pull request #83 from iReflect/master

Add support to override migration template
This commit is contained in:
Vojtech Vitek 2017-11-22 12:10:53 -05:00 committed by GitHub
commit a68655caf6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -10,7 +10,7 @@ import (
) )
// Create writes a new blank migration file. // Create writes a new blank migration file.
func Create(db *sql.DB, dir, name, migrationType string) error { func CreateWithTemplate(db *sql.DB, dir string, migrationTemplate *template.Template, name, migrationType string) error {
migrations, err := CollectMigrations(dir, minVersion, maxVersion) migrations, err := CollectMigrations(dir, minVersion, maxVersion)
if err != nil { if err != nil {
return err return err
@ -26,11 +26,16 @@ func Create(db *sql.DB, dir, name, migrationType string) error {
filename := fmt.Sprintf("%v_%v.%v", version, name, migrationType) filename := fmt.Sprintf("%v_%v.%v", version, name, migrationType)
fpath := filepath.Join(dir, filename) fpath := filepath.Join(dir, filename)
tmpl := sqlMigrationTemplate tmpl := sqlMigrationTemplate
if migrationType == "go" { if migrationType == "go" {
tmpl = goSQLMigrationTemplate tmpl = goSQLMigrationTemplate
} }
if migrationTemplate != nil {
tmpl = migrationTemplate
}
path, err := writeTemplateToFile(fpath, tmpl, version) path, err := writeTemplateToFile(fpath, tmpl, version)
if err != nil { if err != nil {
return err return err
@ -40,6 +45,11 @@ func Create(db *sql.DB, dir, name, migrationType string) error {
return nil return nil
} }
// Create writes a new blank migration file.
func Create(db *sql.DB, dir, name, migrationType string) error {
return CreateWithTemplate(db, dir, nil, name, migrationType)
}
func writeTemplateToFile(path string, t *template.Template, version string) (string, error) { func writeTemplateToFile(path string, t *template.Template, version string) (string, error) {
if _, err := os.Stat(path); !os.IsNotExist(err) { if _, err := os.Stat(path); !os.IsNotExist(err) {
return "", fmt.Errorf("failed to create file: %v already exists", path) return "", fmt.Errorf("failed to create file: %v already exists", path)