package
4.0.0-20230219142210-8c662bdc45f9
Repository: https://github.com/greboid/migrate.git
Documentation: pkg.go.dev
# README
MySQL
mysql://user:password@tcp(host:port)/dbname?query
URL Query | WithInstance Config | Description |
---|---|---|
x-migrations-table | MigrationsTable | Name of the migrations table |
x-no-lock | NoLock | Set to true to skip GET_LOCK /RELEASE_LOCK statements. Useful for multi-master MySQL flavors. Only run migrations from one host when this is enabled. |
x-statement-timeout | StatementTimeout | Abort any statement that takes more than the specified number of milliseconds, functionally similar to Server-side SELECT statement timeouts but enforced by the client. Available for all versions of MySQL, not just >=5.7. |
dbname | DatabaseName | The name of the database to connect to |
user | The user to sign in as | |
password | The user's password | |
host | The host to connect to. | |
port | The port to bind to. | |
tls | TLS / SSL encrypted connection parameter; see go-sql-driver. Use any name (e.g. migrate ) if you want to use a custom TLS config (x-tls- queries). | |
x-tls-ca | The location of the CA (certificate authority) file. | |
x-tls-cert | The location of the client certicicate file. Must be used with x-tls-key . | |
x-tls-key | The location of the private key file. Must be used with x-tls-cert . | |
x-tls-insecure-skip-verify | Whether or not to use SSL (true|false) |
Use with existing client
If you use the MySQL driver with existing database client, you must create the client with parameter multiStatements=true
:
package main
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
"github.com/greboid/migrate/v4"
"github.com/greboid/migrate/v4/database/mysql"
_ "github.com/greboid/migrate/v4/source/file"
)
func main() {
db, _ := sql.Open("mysql", "user:password@tcp(host:port)/dbname?multiStatements=true")
driver, _ := mysql.WithInstance(db, &mysql.Config{})
m, _ := migrate.NewWithDatabaseInstance(
"file:///migrations",
"mysql",
driver,
)
m.Steps(2)
}
Upgrading from v1
- Write down the current migration version from schema_migrations
DROP TABLE schema_migrations
- Wrap your existing migrations in transactions (BEGIN/COMMIT) if you use multiple statements within one migration.
- Download and install the latest migrate version.
- Force the current migration version with
migrate force <current_version>
.
# Functions
connection instance must have `multiStatements` set to true.
instance must have `multiStatements` set to true.
# Variables
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author