Documentation
¶
Overview ¶
Package migration provides tools for database schema migrations.
TODO(CyS): https://povilasv.me/2017/02/20/go-schema-migration-tools/
TL;DR If your looking for schema migration tool you can use:
mattes/migrate, SQL defined schema migrations, with a well defined and documented API, large database support and a useful CLI tool. This tool is actively maintained, has a lot of stars and an A+ from goreport.
rubenv/sql-migrate, go struct based or SQL defined schema migrations, with a config file, migration history, prod-dev-test environments. The only drawback is that it got B from goreport. SQL Schema migration tool for Go. Based on gorp and goose. Is better because the API for using it within your code (FOSDEM2016).
https://bitbucket.org/liamstask/goose goose is a database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. Cons: https://www.reddit.com/r/golang/comments/2dlbz5/database_migration_handling_in_go/
github.com/mattes/migrate 744 Stars A migration helper written in Go. Use it in your existing Golang code or run commands via the CLI.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ToUTF8MB4 ¶
ToUTF8MB4 converts MySQL compatible databases from utf8 to utf8mb4. What’s the difference between utf8 and utf8mb4? MySQL decided that UTF-8 can only hold 3 bytes per character. Why? No good reason can be found documented anywhere. Few years later, when MySQL 5.5.3 was released, they introduced a new encoding called utf8mb4, which is actually the real 4-byte utf8 encoding that you know and love.
# Run this once on each schema you have (Replace database_name with your schema name) ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# Run this once for each table you have (replace table_name with the table name) ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# Run this for each column (replace table name, column_name, the column type, maximum length, etc.) ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Types ¶
This section is empty.