Skip to content

Commit af5d13c

Browse files
committed
Update
1 parent e8650c9 commit af5d13c

1 file changed

Lines changed: 9 additions & 19 deletions

File tree

pkg/dbmate/db.go

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -742,17 +742,12 @@ func (db *DB) Rollback() error {
742742
}
743743

744744
// migrateOnly applies exactly one pending migration that matches the given version.
745-
func (db *DB) migrateOnly(version string) error {
745+
func (db *DB) migrateOnly(migrations []Migration, version string) error {
746746
drv, err := db.Driver()
747747
if err != nil {
748748
return err
749749
}
750750

751-
migrations, err := db.FindMigrations()
752-
if err != nil {
753-
return err
754-
}
755-
756751
var target *Migration
757752
highestApplied := ""
758753
for i, m := range migrations {
@@ -814,17 +809,12 @@ func (db *DB) migrateOnly(version string) error {
814809
}
815810

816811
// rollbackOnly rolls back exactly one applied migration that matches the given version.
817-
func (db *DB) rollbackOnly(version string) error {
812+
func (db *DB) rollbackOnly(migrations []Migration, version string) error {
818813
drv, err := db.Driver()
819814
if err != nil {
820815
return err
821816
}
822817

823-
migrations, err := db.FindMigrations()
824-
if err != nil {
825-
return err
826-
}
827-
828818
var target *Migration
829819
for i, m := range migrations {
830820
if m.Version == version {
@@ -880,16 +870,16 @@ func (db *DB) rollbackOnly(version string) error {
880870

881871
// MigrateTo applies every pending migration whose version ≤ target (inclusive).
882872
func (db *DB) MigrateTo(target string) error {
883-
migs, err := db.FindMigrations()
873+
migrations, err := db.FindMigrations()
884874
if err != nil {
885875
return err
886876
}
887877

888-
for _, m := range migs {
878+
for _, m := range migrations {
889879
if m.Applied || m.Version > target {
890880
continue
891881
}
892-
if err := db.migrateOnly(m.Version); err != nil {
882+
if err := db.migrateOnly(migrations, m.Version); err != nil {
893883
return err
894884
}
895885
}
@@ -898,17 +888,17 @@ func (db *DB) MigrateTo(target string) error {
898888

899889
// RollbackTo rolls back until version == target remains applied (exclusive).
900890
func (db *DB) RollbackTo(target string) error {
901-
migs, err := db.FindMigrations()
891+
migrations, err := db.FindMigrations()
902892
if err != nil {
903893
return err
904894
}
905895
// process latest-first
906-
for i := len(migs) - 1; i >= 0; i-- {
907-
m := migs[i]
896+
for i := len(migrations) - 1; i >= 0; i-- {
897+
m := migrations[i]
908898
if !m.Applied || m.Version == target {
909899
continue
910900
}
911-
if err := db.rollbackOnly(m.Version); err != nil {
901+
if err := db.rollbackOnly(migrations, m.Version); err != nil {
912902
return err
913903
}
914904
}

0 commit comments

Comments
 (0)