@@ -2,6 +2,7 @@ package migrate
22
33import (
44 "bytes"
5+ "os"
56 "database/sql"
67 "errors"
78 "fmt"
@@ -228,14 +229,9 @@ func findMigrations(dir http.FileSystem) ([]*Migration, error) {
228229
229230 for _ , info := range files {
230231 if strings .HasSuffix (info .Name (), ".sql" ) {
231- file , err := dir . Open ( info . Name () )
232+ migration , err := migrationFromFile ( dir , info )
232233 if err != nil {
233- return nil , fmt .Errorf ("Error while opening %s: %s" , info .Name (), err )
234- }
235-
236- migration , err := ParseMigration (info .Name (), file )
237- if err != nil {
238- return nil , fmt .Errorf ("Error while parsing %s: %s" , info .Name (), err )
234+ return nil , err
239235 }
240236
241237 migrations = append (migrations , migration )
@@ -248,6 +244,20 @@ func findMigrations(dir http.FileSystem) ([]*Migration, error) {
248244 return migrations , nil
249245}
250246
247+ func migrationFromFile (dir http.FileSystem , info os.FileInfo ) (* Migration , error ) {
248+ file , err := dir .Open (info .Name ())
249+ if err != nil {
250+ return nil , fmt .Errorf ("Error while opening %s: %s" , info .Name (), err )
251+ }
252+ defer func () { _ = file .Close () }()
253+
254+ migration , err := ParseMigration (info .Name (), file )
255+ if err != nil {
256+ return nil , fmt .Errorf ("Error while parsing %s: %s" , info .Name (), err )
257+ }
258+ return migration , nil
259+ }
260+
251261// Migrations from a bindata asset set.
252262type AssetMigrationSource struct {
253263 // Asset should return content of file in path if exists
0 commit comments