From ab71992b7c342d8fba926fe763b53907bf78da00 Mon Sep 17 00:00:00 2001 From: Ariel Mashraki <7413593+a8m@users.noreply.github.com> Date: Sun, 9 Feb 2020 16:09:02 +0200 Subject: [PATCH] dialect/sql/mysql: fix verifyrange check for mysql (#337) --- dialect/sql/schema/mysql.go | 2 +- dialect/sql/schema/mysql_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dialect/sql/schema/mysql.go b/dialect/sql/schema/mysql.go index 5e6f3c406..bfbb83ce2 100644 --- a/dialect/sql/schema/mysql.go +++ b/dialect/sql/schema/mysql.go @@ -136,7 +136,7 @@ func (d *MySQL) verifyRange(ctx context.Context, tx dialect.Tx, t *Table, expect // Table is empty and auto-increment is not configured. This can happen // because MySQL (< 8.0) stores the auto-increment counter in main memory // (not persistent), and the value is reset on restart (if table is empty). - if actual.Int64 == 0 { + if actual.Int64 <= 1 { return d.setRange(ctx, tx, t, expected) } return nil diff --git a/dialect/sql/schema/mysql_test.go b/dialect/sql/schema/mysql_test.go index 8ac08ecc0..5c2d67efa 100644 --- a/dialect/sql/schema/mysql_test.go +++ b/dialect/sql/schema/mysql_test.go @@ -1087,7 +1087,7 @@ func TestMySQL_Create(t *testing.T) { mock.ExpectQuery(escape("SELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.TABLES WHERE `TABLE_SCHEMA` = (SELECT DATABASE()) AND `TABLE_NAME` = ?")). WithArgs("users"). WillReturnRows(sqlmock.NewRows([]string{"AUTO_INCREMENT"}). - AddRow(0)) + AddRow(1)) // restore the auto-increment counter. mock.ExpectExec(escape("ALTER TABLE `users` AUTO_INCREMENT = 4294967296")). WillReturnResult(sqlmock.NewResult(0, 1))