diff --git a/ddl/START_HERE.md b/ddl/START_HERE.md index f50cacb..593d82c 100644 --- a/ddl/START_HERE.md +++ b/ddl/START_HERE.md @@ -78,6 +78,7 @@ If you have docker, you can use the docker-compose.yml (run `docker-compose up`) # docker-compose up -d POSTGRES_URL='postgres://user1:Hunter2!@localhost:5456/sakila?sslmode=disable' MYSQL_URL='root:Hunter2!@tcp(localhost:3330)/sakila?multiStatements=true&parseTime=true' +MYSQL5_URL='root:Hunter2!@tcp(localhost:3320)/sakila?multiStatements=true&parseTime=true' MARIADB_URL='root:Hunter2!@tcp(localhost:3340)/sakila?multiStatements=true&parseTime=true' SQLSERVER_URL='sqlserver://sa:Hunter2!@localhost:1447' ``` diff --git a/ddl/integration_test.go b/ddl/integration_test.go index 82f7eb1..0911ebd 100644 --- a/ddl/integration_test.go +++ b/ddl/integration_test.go @@ -84,6 +84,7 @@ func TestMySQL(t *testing.T) { if err != nil { t.Fatal(testutil.Callers(), err) } + dbi := NewDatabaseIntrospector(dialect, db) version, err := dbi.GetVersion() if err != nil { @@ -92,6 +93,15 @@ func TestMySQL(t *testing.T) { if strings.Contains(version, "MariaDB") { t.Skip("skipping integration tests for MariaDB because it doesn't support indexed expressions (which are present in the mysql migration scripts)") } + + versionNums, err := dbi.GetVersionNums() + if err != nil { + t.Fatal(testutil.Callers(), err) + } + if versionNums.LowerThan(8) { + t.Skip(fmt.Sprintf("skipping integration tests for MySQL %d because the tests are only designed for MySQL 8 and above", versionNums[0])) + } + t.Parallel() testMigrateIntrospect(t, dialect, driver, *mysqlDSN) testAutomigrate(t, dialect, *mysqlDSN, diff --git a/ddl/introspection_scripts/mysql_constraints.sql b/ddl/introspection_scripts/mysql_constraints.sql index 53a6462..bb01183 100644 --- a/ddl/introspection_scripts/mysql_constraints.sql +++ b/ddl/introspection_scripts/mysql_constraints.sql @@ -11,6 +11,8 @@ SELECT ,'' AS delete_rule ,'' AS match_option ,'' AS check_expr +FROM + information_schema.table_constraints WHERE FALSE {{- if .IncludeConstraintType "PRIMARY KEY" }} diff --git a/docker-compose.yml b/docker-compose.yml index 81e08ab..52be0fe 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,6 +27,20 @@ services: MYSQL_DATABASE: 'sakila' platform: 'linux/amd64' + mysql5: + container_name: 'mysql5_sakila' + image: 'mysql:5.7' + ports: + - '3320:3306' + volumes: + - 'mysql5_data:/var/lib/mysql' + environment: + MYSQL_ROOT_PASSWORD: 'Hunter2!' + MYSQL_USER: 'user1' + MYSQL_PASSWORD: 'Hunter2!' + MYSQL_DATABASE: 'sakila' + platform: 'linux/amd64' + mariadb: container_name: 'mariadb_sakila' image: 'mariadb' @@ -70,6 +84,7 @@ services: volumes: postgres_data: mysql_data: + mysql5_data: mariadb_data: sqlserver_data: # oracle_data: