Fix migrate migrationDidRun bug on postgres (#818)
* fix migrate migrationDidRun bug on postgres * fix missing error handle
This commit is contained in:
parent
d4149d1eee
commit
cd46810bf9
|
@ -122,7 +122,10 @@ func (m *Migrate) RollbackLast() error {
|
||||||
func (m *Migrate) getLastRunnedMigration() (*Migration, error) {
|
func (m *Migrate) getLastRunnedMigration() (*Migration, error) {
|
||||||
for i := len(m.migrations) - 1; i >= 0; i-- {
|
for i := len(m.migrations) - 1; i >= 0; i-- {
|
||||||
migration := m.migrations[i]
|
migration := m.migrations[i]
|
||||||
if m.migrationDidRun(migration) {
|
run, err := m.migrationDidRun(migration)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
} else if run {
|
||||||
return migration, nil
|
return migration, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -165,7 +168,12 @@ func (m *Migrate) runMigration(migration *Migration) error {
|
||||||
return ErrMissingID
|
return ErrMissingID
|
||||||
}
|
}
|
||||||
|
|
||||||
if !m.migrationDidRun(migration) {
|
run, err :=m.migrationDidRun(migration)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if !run {
|
||||||
if err := migration.Migrate(m.db); err != nil {
|
if err := migration.Migrate(m.db); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -193,11 +201,9 @@ func (m *Migrate) createMigrationTableIfNotExists() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Migrate) migrationDidRun(mig *Migration) bool {
|
func (m *Migrate) migrationDidRun(mig *Migration) (bool, error) {
|
||||||
row := m.db.DB().QueryRow(fmt.Sprintf("SELECT COUNT(*) FROM %s WHERE %s = ?", m.options.TableName, m.options.IDColumnName), mig.ID)
|
count, err := m.db.SQL(fmt.Sprintf("SELECT COUNT(*) FROM %s WHERE %s = ?", m.options.TableName, m.options.IDColumnName), mig.ID).Count()
|
||||||
var count int
|
return count > 0, err
|
||||||
row.Scan(&count)
|
|
||||||
return count > 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Migrate) isFirstRun() bool {
|
func (m *Migrate) isFirstRun() bool {
|
||||||
|
|
Loading…
Reference in New Issue