MCPcopy
hub / github.com/rubenv/sql-migrate / FindMigrations

Method FindMigrations

migrate.go:377–415  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

375var _ MigrationSource = (*PackrMigrationSource)(nil)
376
377func (p PackrMigrationSource) FindMigrations() ([]*Migration, error) {
378 migrations := make([]*Migration, 0)
379 items := p.Box.List()
380
381 prefix := ""
382 dir := path.Clean(p.Dir)
383 if dir != "." {
384 prefix = fmt.Sprintf("%s/", dir)
385 }
386
387 for _, item := range items {
388 if !strings.HasPrefix(item, prefix) {
389 continue
390 }
391 name := strings.TrimPrefix(item, prefix)
392 if strings.Contains(name, "/") {
393 continue
394 }
395
396 if strings.HasSuffix(name, ".sql") {
397 file, err := p.Box.Find(item)
398 if err != nil {
399 return nil, err
400 }
401
402 migration, err := ParseMigration(name, bytes.NewReader(file))
403 if err != nil {
404 return nil, err
405 }
406
407 migrations = append(migrations, migration)
408 }
409 }
410
411 // Make sure migrations are sorted
412 sort.Sort(byId(migrations))
413
414 return migrations, nil
415}
416
417// Migration parsing
418func ParseMigration(id string, r io.ReadSeeker) (*Migration, error) {

Callers

nothing calls this directly

Calls 4

byIdTypeAlias · 0.85
ListMethod · 0.80
FindMethod · 0.80
ParseMigrationFunction · 0.70

Tested by

no test coverage detected