gitextract_z_8o4h8f/ ├── .github/ │ ├── ops/ │ │ └── mysql/ │ │ └── Dockerfile │ └── workflows/ │ ├── cd-docker-push-cockroach_oss.yaml │ ├── cd-docker-push-mysql_oss.yaml │ ├── ci-dialect_oss.yaml │ ├── ci-go_oss.yaml │ ├── ci-revisions_oss.yaml │ └── ci-sdk.yml ├── .golangci.yml ├── LICENSE ├── README.md ├── atlasexec/ │ ├── README.md │ ├── atlas.go │ ├── atlas_internal_test.go │ ├── atlas_migrate.go │ ├── atlas_migrate_example_test.go │ ├── atlas_migrate_test.go │ ├── atlas_models.go │ ├── atlas_schema.go │ ├── atlas_schema_test.go │ ├── atlas_test.go │ ├── copilot.go │ ├── copilot_test.go │ ├── internal/ │ │ └── e2e/ │ │ ├── sqlite_test.go │ │ ├── testdata/ │ │ │ ├── multi-tenants/ │ │ │ │ ├── atlas.hcl │ │ │ │ └── migrations/ │ │ │ │ ├── 20240112070806.sql │ │ │ │ ├── 20240116003831.sql │ │ │ │ └── atlas.sum │ │ │ ├── schema-plan/ │ │ │ │ ├── schema-1.lt.hcl │ │ │ │ └── schema-2.lt.hcl │ │ │ └── versioned-basic/ │ │ │ ├── atlas.hcl │ │ │ └── migrations/ │ │ │ ├── 20240112070806.sql │ │ │ └── atlas.sum │ │ └── util_e2e.go │ ├── mock-atlas.sh │ ├── testdata/ │ │ ├── broken/ │ │ │ ├── 20231029112426.sql │ │ │ └── atlas.sum │ │ └── migrations/ │ │ ├── 20230727105553_init.sql │ │ ├── 20230727105615_t2.sql │ │ ├── 20230926085734_destructive-change.sql │ │ └── atlas.sum │ ├── working_dir.go │ └── working_dir_test.go ├── cmd/ │ └── atlas/ │ ├── go.mod │ ├── go.sum │ ├── internal/ │ │ ├── cloudapi/ │ │ │ ├── client.go │ │ │ ├── client_oss.go │ │ │ └── client_test.go │ │ ├── cmdapi/ │ │ │ ├── cmdapi.go │ │ │ ├── cmdapi_oss.go │ │ │ ├── cmdapi_test.go │ │ │ ├── migrate.go │ │ │ ├── migrate_oss.go │ │ │ ├── migrate_test.go │ │ │ ├── project.go │ │ │ ├── project_test.go │ │ │ ├── schema.go │ │ │ ├── schema_test.go │ │ │ ├── testdata/ │ │ │ │ ├── baseline1/ │ │ │ │ │ ├── 1_baseline.sql │ │ │ │ │ └── atlas.sum │ │ │ │ ├── baseline2/ │ │ │ │ │ ├── 1_baseline.sql │ │ │ │ │ ├── 20220318104614_initial.sql │ │ │ │ │ ├── 20220318104615_second.sql │ │ │ │ │ └── atlas.sum │ │ │ │ ├── import/ │ │ │ │ │ ├── dbmate/ │ │ │ │ │ │ ├── 1_initial.sql │ │ │ │ │ │ └── 2_second_migration.sql │ │ │ │ │ ├── dbmate_gold/ │ │ │ │ │ │ ├── 1_initial.sql │ │ │ │ │ │ └── 2_second_migration.sql │ │ │ │ │ ├── flyway/ │ │ │ │ │ │ ├── B2__baseline.sql │ │ │ │ │ │ ├── R__views.sql │ │ │ │ │ │ ├── U1__initial.sql │ │ │ │ │ │ ├── V1__initial.sql │ │ │ │ │ │ ├── V2__second_migration.sql │ │ │ │ │ │ └── V3__third_migration.sql │ │ │ │ │ ├── flyway_gold/ │ │ │ │ │ │ ├── 2_baseline.sql │ │ │ │ │ │ ├── 3R_views.sql │ │ │ │ │ │ └── 3_third_migration.sql │ │ │ │ │ ├── golang-migrate/ │ │ │ │ │ │ ├── 1_initial.down.sql │ │ │ │ │ │ ├── 1_initial.up.sql │ │ │ │ │ │ ├── 2_second_migration.down.sql │ │ │ │ │ │ └── 2_second_migration.up.sql │ │ │ │ │ ├── golang-migrate_gold/ │ │ │ │ │ │ ├── 1_initial.sql │ │ │ │ │ │ └── 2_second_migration.sql │ │ │ │ │ ├── goose/ │ │ │ │ │ │ ├── 1_initial.sql │ │ │ │ │ │ └── 2_second_migration.sql │ │ │ │ │ ├── goose_gold/ │ │ │ │ │ │ ├── 1_initial.sql │ │ │ │ │ │ └── 2_second_migration.sql │ │ │ │ │ ├── liquibase/ │ │ │ │ │ │ ├── 1_initial.sql │ │ │ │ │ │ └── 2_second_migration.sql │ │ │ │ │ └── liquibase_gold/ │ │ │ │ │ ├── 1_initial.sql │ │ │ │ │ └── 2_second_migration.sql │ │ │ │ ├── mysql/ │ │ │ │ │ ├── 20220318104614_initial.sql │ │ │ │ │ ├── 20220420213403_second.sql │ │ │ │ │ └── atlas.sum │ │ │ │ ├── sqlite/ │ │ │ │ │ ├── 20220318104614_initial.sql │ │ │ │ │ ├── 20220318104615_second.sql │ │ │ │ │ └── atlas.sum │ │ │ │ ├── sqlite2/ │ │ │ │ │ ├── 20220318104614_initial.sql │ │ │ │ │ ├── 20220318104615_second.sql │ │ │ │ │ └── atlas.sum │ │ │ │ ├── sqlitetx/ │ │ │ │ │ ├── 20220925092817_initial.sql │ │ │ │ │ ├── 20220925094021_second.sql │ │ │ │ │ ├── 20220925094437_third.sql │ │ │ │ │ └── atlas.sum │ │ │ │ ├── sqlitetx2/ │ │ │ │ │ ├── 20220925092817_initial.sql │ │ │ │ │ ├── 20220925094021_second.sql │ │ │ │ │ ├── 20220925094437_third.sql │ │ │ │ │ └── atlas.sum │ │ │ │ ├── sqlitetx3/ │ │ │ │ │ ├── 20220925092817_initial.sql │ │ │ │ │ ├── 20220925094021_second.sql │ │ │ │ │ └── atlas.sum │ │ │ │ ├── sqlitetx4/ │ │ │ │ │ ├── 20220925092817_initial.sql │ │ │ │ │ ├── 20220925094021_second.sql │ │ │ │ │ └── atlas.sum │ │ │ │ └── templatedir/ │ │ │ │ ├── 1.sql │ │ │ │ ├── 2.sql │ │ │ │ ├── atlas.sum │ │ │ │ └── shared/ │ │ │ │ └── users.sql │ │ │ ├── vercheck/ │ │ │ │ ├── notification.tmpl │ │ │ │ ├── req_oss.go │ │ │ │ ├── vercheck.go │ │ │ │ └── vercheck_test.go │ │ │ ├── version_oss.go │ │ │ └── version_oss_test.go │ │ ├── cmdext/ │ │ │ ├── cmdext.go │ │ │ ├── cmdext_oss.go │ │ │ ├── cmdext_test.go │ │ │ ├── reader.go │ │ │ └── reader_test.go │ │ ├── cmdlog/ │ │ │ ├── cmdlog.go │ │ │ ├── cmdlog_oss.go │ │ │ └── cmdlog_test.go │ │ ├── cmdstate/ │ │ │ ├── cmdstate.go │ │ │ └── cmdstate_test.go │ │ ├── docker/ │ │ │ ├── docker.go │ │ │ └── docker_test.go │ │ ├── migrate/ │ │ │ ├── ent/ │ │ │ │ ├── client.go │ │ │ │ ├── convert.go │ │ │ │ ├── ent.go │ │ │ │ ├── entc.go │ │ │ │ ├── enttest/ │ │ │ │ │ └── enttest.go │ │ │ │ ├── generate.go │ │ │ │ ├── hook/ │ │ │ │ │ └── hook.go │ │ │ │ ├── internal/ │ │ │ │ │ └── schemaconfig.go │ │ │ │ ├── migrate/ │ │ │ │ │ ├── migrate.go │ │ │ │ │ └── schema.go │ │ │ │ ├── mutation.go │ │ │ │ ├── predicate/ │ │ │ │ │ └── predicate.go │ │ │ │ ├── revision/ │ │ │ │ │ ├── revision.go │ │ │ │ │ └── where.go │ │ │ │ ├── revision.go │ │ │ │ ├── revision_create.go │ │ │ │ ├── revision_delete.go │ │ │ │ ├── revision_query.go │ │ │ │ ├── revision_update.go │ │ │ │ ├── runtime/ │ │ │ │ │ └── runtime.go │ │ │ │ ├── runtime.go │ │ │ │ ├── schema/ │ │ │ │ │ └── revision.go │ │ │ │ ├── template/ │ │ │ │ │ └── convert.tmpl │ │ │ │ └── tx.go │ │ │ ├── migrate.go │ │ │ ├── migrate_oss.go │ │ │ ├── migrate_test.go │ │ │ └── testdata/ │ │ │ ├── broken/ │ │ │ │ ├── 1.sql │ │ │ │ ├── 2.sql │ │ │ │ ├── 3.sql │ │ │ │ └── atlas.sum │ │ │ └── fixed/ │ │ │ ├── 1.sql │ │ │ ├── 2.sql │ │ │ ├── 3.sql │ │ │ └── atlas.sum │ │ ├── migratelint/ │ │ │ ├── lint.go │ │ │ ├── lint_oss.go │ │ │ └── lint_test.go │ │ └── sqlparse/ │ │ ├── myparse/ │ │ │ └── myparse_oss.go │ │ ├── parseutil/ │ │ │ └── parseutil.go │ │ ├── pgparse/ │ │ │ └── pgparse_oss.go │ │ ├── sqliteparse/ │ │ │ ├── Lexer.g4 │ │ │ ├── Parser.g4 │ │ │ ├── README.md │ │ │ ├── lexer.go │ │ │ ├── parser.go │ │ │ ├── parser_base_listener.go │ │ │ ├── parser_base_visitor.go │ │ │ ├── parser_listener.go │ │ │ ├── parser_visitor.go │ │ │ └── sqliteparse_oss.go │ │ └── sqlparse.go │ ├── main.go │ └── main_oss.go ├── go.mod ├── go.sum ├── internal/ │ ├── ci/ │ │ ├── ci_dialect.tmpl │ │ ├── ci_go.tmpl │ │ ├── ci_revisions.tmpl │ │ ├── cockroach/ │ │ │ ├── Dockerfile.tmpl │ │ │ └── main.go │ │ ├── jobs_oss.go │ │ └── main.go │ └── integration/ │ ├── README.md │ ├── cockroach_test.go │ ├── docker-compose.yaml │ ├── go.mod │ ├── go.sum │ ├── hclsqlspec/ │ │ └── hclsqlspec_test.go │ ├── integration_test.go │ ├── mysql_test.go │ ├── postgres_test.go │ ├── script_test.go │ ├── sqlite_test.go │ ├── testdata/ │ │ ├── migrations/ │ │ │ ├── mysql/ │ │ │ │ ├── 1_initial.sql │ │ │ │ └── atlas.sum │ │ │ ├── mysqlock/ │ │ │ │ ├── 1.sql │ │ │ │ ├── 2.sql │ │ │ │ ├── 3.sql │ │ │ │ └── atlas.sum │ │ │ └── postgres/ │ │ │ ├── 1_initial.sql │ │ │ └── atlas.sum │ │ ├── mysql/ │ │ │ ├── autoincrement.txtar │ │ │ ├── check-maria.txtar │ │ │ ├── check.txtar │ │ │ ├── cli-inspect-file.txtar │ │ │ ├── cli-migrate-apply-datasrc.txtar │ │ │ ├── cli-migrate-apply.txtar │ │ │ ├── cli-migrate-diff-format.txtar │ │ │ ├── cli-migrate-diff-mode-normalized.txtar │ │ │ ├── cli-migrate-diff.txtar │ │ │ ├── cli-project-schemas.txtar │ │ │ ├── cli-project-url-escape.txtar │ │ │ ├── cli-schema-apply-datasrc.txtar │ │ │ ├── column-add-drop.txtar │ │ │ ├── column-bit.txtar │ │ │ ├── column-bool.txtar │ │ │ ├── column-charset.txtar │ │ │ ├── column-default-expr.txtar │ │ │ ├── column-generated-inspect.txtar │ │ │ ├── column-generated.txtar │ │ │ ├── column-json.txtar │ │ │ ├── column-time-precision-maria.txtar │ │ │ ├── column-time-precision-mysql.txtar │ │ │ ├── foreign-key-add.txtar │ │ │ ├── foreign-key-modify-action.txtar │ │ │ ├── foreign-key.txtar │ │ │ ├── index-add-drop.txtar │ │ │ ├── index-desc.txtar │ │ │ ├── index-expr.txtar │ │ │ ├── index-prefix.txtar │ │ │ ├── index-type.txtar │ │ │ ├── index-unique.txtar │ │ │ ├── primary-key-parts.txtar │ │ │ ├── primary-key.txtar │ │ │ └── table-engine.txtar │ │ ├── postgres/ │ │ │ ├── cli-inspect-file.txtar │ │ │ ├── cli-inspect.txtar │ │ │ ├── cli-migrate-apply-datasrc.txtar │ │ │ ├── cli-migrate-apply.txtar │ │ │ ├── cli-migrate-diff-unsupported.txtar │ │ │ ├── cli-migrate-diff.txtar │ │ │ ├── cli-migrate-status.txtar │ │ │ ├── column-array.txtar │ │ │ ├── column-bit.txtar │ │ │ ├── column-comment.txtar │ │ │ ├── column-default.txtar │ │ │ ├── column-domain.txtar │ │ │ ├── column-enum-array.txtar │ │ │ ├── column-enum.txtar │ │ │ ├── column-float.txtar │ │ │ ├── column-generated-inspect.txtar │ │ │ ├── column-identity.txtar │ │ │ ├── column-interval.txtar │ │ │ ├── column-numeric.txtar │ │ │ ├── column-range.txtar │ │ │ ├── column-serial.txtar │ │ │ ├── column-textsearch.txtar │ │ │ ├── column-time-precision.txtar │ │ │ ├── foreign-key-action.txtar │ │ │ ├── foreign-key.txtar │ │ │ ├── index-desc.txtar │ │ │ ├── index-expr.txtar │ │ │ ├── index-include.txtar │ │ │ ├── index-issue-557.txtar │ │ │ ├── index-nulls-distinct.txtar │ │ │ ├── index-operator-class.txtar │ │ │ ├── index-partial.txtar │ │ │ ├── index-type-brin.txtar │ │ │ ├── index-type.txtar │ │ │ ├── index-unique-constraint.txtar │ │ │ ├── primary-key.txtar │ │ │ ├── table-checks.txtar │ │ │ └── table-partition.txtar │ │ └── sqlite/ │ │ ├── autoincrement.txtar │ │ ├── cli-apply-multifile.txtar │ │ ├── cli-apply-project-multifile.txtar │ │ ├── cli-apply-vars.txtar │ │ ├── cli-inspect.txtar │ │ ├── cli-migrate-apply.txtar │ │ ├── cli-migrate-diff-datasrc-hcl-paths.txtar │ │ ├── cli-migrate-diff-datasrc-hcl.txtar │ │ ├── cli-migrate-diff-minimal-env.txtar │ │ ├── cli-migrate-diff-multifile.txtar │ │ ├── cli-migrate-diff-sql.txtar │ │ ├── cli-migrate-diff.txtar │ │ ├── cli-migrate-lint-add-notnull.txtar │ │ ├── cli-migrate-lint-destructive.txtar │ │ ├── cli-migrate-lint-ignore.txtar │ │ ├── cli-migrate-lint-minimal-env.txtar │ │ ├── cli-migrate-lint-project.txtar │ │ ├── cli-migrate-project-multifile.txtar │ │ ├── cli-migrate-project.txtar │ │ ├── cli-migrate-set.txtar │ │ ├── cli-project-vars.txtar │ │ ├── cli-schema-project-file.txtar │ │ ├── column-default.txtar │ │ ├── column-generated.txtar │ │ ├── column-user-defined.txtar │ │ ├── index-desc.txtar │ │ ├── index-expr.txtar │ │ ├── index-partial.txtar │ │ └── table-options.txtar │ ├── tidb_test.go │ └── tools.go ├── schemahcl/ │ ├── context.go │ ├── context_test.go │ ├── extension.go │ ├── extension_test.go │ ├── schemahcl.go │ ├── schemahcl_test.go │ ├── spec.go │ ├── spec_test.go │ ├── stdlib.go │ ├── stdlib_test.go │ ├── testdata/ │ │ ├── a.hcl │ │ ├── b.hcl │ │ ├── nested/ │ │ │ └── c.hcl │ │ └── variables.hcl │ ├── types.go │ └── types_test.go ├── sdk/ │ ├── recordriver/ │ │ ├── driver.go │ │ └── driver_test.go │ └── tmplrun/ │ ├── testdata/ │ │ ├── app.tmpl │ │ └── foo.go │ ├── tmplrun.go │ └── tmplrun_test.go └── sql/ ├── internal/ │ ├── spectest/ │ │ └── spectest.go │ ├── specutil/ │ │ ├── convert.go │ │ ├── convert_test.go │ │ └── spec.go │ ├── sqltest/ │ │ └── sqltest.go │ └── sqlx/ │ ├── dev.go │ ├── dev_test.go │ ├── diff.go │ ├── plan.go │ ├── plan_test.go │ ├── sqlx.go │ ├── sqlx_oss.go │ └── sqlx_test.go ├── migrate/ │ ├── dir.go │ ├── dir_test.go │ ├── lex.go │ ├── lex_test.go │ ├── migrate.go │ ├── migrate_oss.go │ ├── migrate_test.go │ └── testdata/ │ ├── golang-migrate/ │ │ └── 1_base.up.sql │ ├── lex/ │ │ ├── 1.sql │ │ ├── 1.sql.golden │ │ ├── 10_delimiter_comment.sql │ │ ├── 10_delimiter_comment.sql.golden │ │ ├── 11_delimiter_mysql_command.sql │ │ ├── 11_delimiter_mysql_command.sql.golden │ │ ├── 12_delimiter_mysql_command.sql │ │ ├── 12_delimiter_mysql_command.sql.golden │ │ ├── 13_delimiter_mysql_command.sql │ │ ├── 13_delimiter_mysql_command.sql.golden │ │ ├── 14_delimiter_mysql_command.sql │ │ ├── 14_delimiter_mysql_command.sql.golden │ │ ├── 15_dollar_quote.sql │ │ ├── 15_dollar_quote.sql.golden │ │ ├── 16_begin_atomic.sql │ │ ├── 16_begin_atomic.sql.golden │ │ ├── 17_paren.sql │ │ ├── 17_paren.sql.golden │ │ ├── 18_pg_expr.sql │ │ ├── 18_pg_expr.sql.golden │ │ ├── 19_ms_gocmd.sql │ │ ├── 19_ms_gocmd.sql.golden │ │ ├── 20_ms_go-delim.sql │ │ ├── 20_ms_go-delim.sql.golden │ │ ├── 2_mysql.sql │ │ ├── 2_mysql.sql.golden │ │ ├── 3_delimiter.sql │ │ ├── 3_delimiter.sql.golden │ │ ├── 4_delimiter.sql │ │ ├── 4_delimiter.sql.golden │ │ ├── 5_delimiter.sql │ │ ├── 5_delimiter.sql.golden │ │ ├── 6_skip_comment.sql │ │ ├── 6_skip_comment.sql.golden │ │ ├── 7_delimiter_2n.sql │ │ ├── 7_delimiter_2n.sql.golden │ │ ├── 8_delimiter_3n.sql │ │ ├── 8_delimiter_3n.sql.golden │ │ ├── 9_delimiter_3n.sql │ │ └── 9_delimiter_3n.sql.golden │ ├── lexbegintry/ │ │ ├── 1.sql │ │ └── 1.sql.golden │ ├── lexescaped/ │ │ ├── 1.my.sql │ │ ├── 1.my.sql.golden │ │ ├── 2.pg.sql │ │ └── 2.pg.sql.golden │ ├── lexgroup/ │ │ ├── 1_trigger.sql │ │ ├── 1_trigger.sql.golden │ │ ├── 2_function.sql │ │ ├── 2_function.sql.golden │ │ ├── 3_delimiter.sql │ │ └── 3_delimiter.sql.golden │ ├── migrate/ │ │ ├── 1_initial.down.sql │ │ ├── 1_initial.up.sql │ │ ├── atlas.sum │ │ └── sub/ │ │ ├── 1.a_sub.up.sql │ │ ├── 2.10.x-20_description.sql │ │ ├── 3_partly.sql │ │ └── atlas.sum │ ├── partial-checkpoint/ │ │ ├── 1_first.sql │ │ ├── 2_second.sql │ │ ├── 3_checkpoint.sql │ │ ├── 4_fourth.sql │ │ ├── 5_checkpoint.sql │ │ ├── 6_sixth.sql │ │ └── atlas.sum │ └── sqlserver/ │ ├── 1_return_table.sql │ ├── 1_return_table.sql.golden │ ├── 2_function.sql │ └── 2_function.sql.golden ├── mysql/ │ ├── convert.go │ ├── diff_oss.go │ ├── diff_oss_test.go │ ├── driver_oss.go │ ├── driver_oss_test.go │ ├── inspect_oss.go │ ├── inspect_oss_test.go │ ├── internal/ │ │ └── mysqlversion/ │ │ ├── is/ │ │ │ ├── .README.md │ │ │ ├── charset2collate │ │ │ ├── charset2collate.maria │ │ │ ├── collate2charset │ │ │ └── collate2charset.maria │ │ ├── mysqlversion.go │ │ └── mysqlversion_test.go │ ├── migrate_oss.go │ ├── migrate_oss_test.go │ ├── mysqlcheck/ │ │ ├── mysqlcheck.go │ │ ├── mysqlcheck_oss.go │ │ └── mysqlcheck_test.go │ ├── sqlspec_oss.go │ ├── sqlspec_oss_test.go │ └── tidb.go ├── postgres/ │ ├── convert.go │ ├── crdb_oss.go │ ├── diff_oss.go │ ├── diff_oss_test.go │ ├── driver_oss.go │ ├── driver_oss_test.go │ ├── inspect_oss.go │ ├── inspect_oss_test.go │ ├── internal/ │ │ └── postgresop/ │ │ └── postgresop.go │ ├── migrate_oss.go │ ├── migrate_oss_test.go │ ├── postgrescheck/ │ │ ├── postgrescheck.go │ │ ├── postgrescheck_oss.go │ │ └── postgrescheck_test.go │ ├── sqlspec_oss.go │ └── sqlspec_oss_test.go ├── schema/ │ ├── changekind_string.go │ ├── dsl.go │ ├── dsl_test.go │ ├── exclude_oss.go │ ├── inspect.go │ ├── migrate.go │ ├── migrate_test.go │ └── schema.go ├── sqlcheck/ │ ├── condrop/ │ │ ├── condrop.go │ │ └── condrop_test.go │ ├── datadepend/ │ │ ├── datadepend.go │ │ └── datadepend_test.go │ ├── destructive/ │ │ ├── destructive.go │ │ ├── destructive_oss.go │ │ └── destructive_test.go │ ├── incompatible/ │ │ ├── incompatible.go │ │ └── incompatible_test.go │ └── sqlcheck.go ├── sqlclient/ │ ├── client.go │ └── client_test.go ├── sqlite/ │ ├── convert.go │ ├── diff.go │ ├── diff_test.go │ ├── driver.go │ ├── driver_oss.go │ ├── driver_test.go │ ├── inspect.go │ ├── inspect_test.go │ ├── migrate.go │ ├── migrate_test.go │ ├── sqlitecheck/ │ │ ├── sqlitecheck.go │ │ ├── sqlitecheck_oss.go │ │ └── sqlitecheck_test.go │ ├── sqlspec.go │ └── sqlspec_test.go ├── sqlspec/ │ ├── sqlspec.go │ └── sqlspec_test.go └── sqltool/ ├── doc.go ├── hidden.go ├── hidden_windows.go ├── testdata/ │ ├── dbmate/ │ │ ├── 1_initial.sql │ │ └── 2_second_migration.sql │ ├── flyway/ │ │ ├── B2__baseline.sql │ │ ├── R__views.sql │ │ ├── U1__initial.sql │ │ ├── V1__initial.sql │ │ ├── V2__second_migration.sql │ │ ├── V3__third_migration.sql │ │ └── v3/ │ │ └── V3_1__fourth_migration.sql │ ├── golang-migrate/ │ │ ├── 1_initial.down.sql │ │ ├── 1_initial.up.sql │ │ ├── 2_second_migration.down.sql │ │ └── 2_second_migration.up.sql │ ├── goose/ │ │ ├── 1_initial.sql │ │ └── 2_second_migration.sql │ └── liquibase/ │ ├── 1_initial.sql │ └── 2_second_migration.sql ├── tool.go └── tool_test.go