Documentation
¶
Overview ¶
Package mysql provides functionality for parsing and generating MySQL database schemas. It implements the Parser interface for handling MySQL specific SQL syntax and schema structures.
Index ¶
- Variables
- func NewMySQL() sqlmapper.Database
- type MySQL
- type MySQLStreamParser
- func (p *MySQLStreamParser) GenerateStream(schema *sqlmapper.Schema, writer io.Writer) error
- func (p *MySQLStreamParser) ParseStream(reader io.Reader, callback func(stream.SchemaObject) error) error
- func (p *MySQLStreamParser) ParseStreamParallel(reader io.Reader, callback func(stream.SchemaObject) error, workers int) error
Constants ¶
This section is empty.
Variables ¶
var ( // MySQLToPostgreSQL Data type conversions from MySQL to PostgreSQL MySQLToPostgreSQL = map[string]string{ "tinyint": "smallint", "smallint": "smallint", "mediumint": "integer", "int": "integer", "bigint": "bigint", "float": "real", "double": "double precision", "decimal": "decimal", "char": "char", "varchar": "varchar", "tinytext": "text", "text": "text", "mediumtext": "text", "longtext": "text", "json": "jsonb", "datetime": "timestamp", "timestamp": "timestamp", "date": "date", "time": "time", "blob": "bytea", "tinyblob": "bytea", "mediumblob": "bytea", "longblob": "bytea", "enum": "text", "set": "text[]", "bool": "boolean", "boolean": "boolean", } // MySQLToSQLServer Data type conversions from MySQL to SQL Server MySQLToSQLServer = map[string]string{ "tinyint": "tinyint", "smallint": "smallint", "mediumint": "int", "int": "int", "bigint": "bigint", "float": "float", "double": "float", "decimal": "decimal", "char": "char", "varchar": "varchar", "tinytext": "varchar(max)", "text": "varchar(max)", "mediumtext": "varchar(max)", "longtext": "varchar(max)", "json": "nvarchar(max)", "datetime": "datetime2", "timestamp": "datetime2", "date": "date", "time": "time", "blob": "varbinary(max)", "tinyblob": "varbinary(max)", "mediumblob": "varbinary(max)", "longblob": "varbinary(max)", "enum": "varchar(255)", "set": "varchar(max)", "bool": "bit", "boolean": "bit", } // MySQLToOracle Data type conversions from MySQL to Oracle MySQLToOracle = map[string]string{ "tinyint": "NUMBER(3)", "smallint": "NUMBER(5)", "mediumint": "NUMBER(7)", "int": "NUMBER(10)", "bigint": "NUMBER(19)", "float": "FLOAT", "double": "FLOAT", "decimal": "NUMBER", "char": "CHAR", "varchar": "VARCHAR2", "tinytext": "CLOB", "text": "CLOB", "mediumtext": "CLOB", "longtext": "CLOB", "json": "CLOB", "datetime": "TIMESTAMP", "timestamp": "TIMESTAMP", "date": "DATE", "time": "TIMESTAMP", "blob": "BLOB", "tinyblob": "BLOB", "mediumblob": "BLOB", "longblob": "BLOB", "enum": "VARCHAR2(255)", "set": "VARCHAR2(4000)", "bool": "NUMBER(1)", "boolean": "NUMBER(1)", } // MySQLToSQLite Data type conversions from MySQL to SQLite MySQLToSQLite = map[string]string{ "tinyint": "INTEGER", "smallint": "INTEGER", "mediumint": "INTEGER", "int": "INTEGER", "bigint": "INTEGER", "float": "REAL", "double": "REAL", "decimal": "REAL", "char": "TEXT", "varchar": "TEXT", "tinytext": "TEXT", "text": "TEXT", "mediumtext": "TEXT", "longtext": "TEXT", "json": "TEXT", "datetime": "TEXT", "timestamp": "TEXT", "date": "TEXT", "time": "TEXT", "blob": "BLOB", "tinyblob": "BLOB", "mediumblob": "BLOB", "longblob": "BLOB", "enum": "TEXT", "set": "TEXT", "bool": "INTEGER", "boolean": "INTEGER", } )
Data type conversion maps from MySQL to other database types
Functions ¶
Types ¶
type MySQL ¶
type MySQL struct {
// contains filtered or unexported fields
}
MySQL represents a MySQL parser implementation that handles parsing and generating MySQL database schemas. It maintains an internal schema representation and provides methods for converting between MySQL SQL and the common schema format.
func (*MySQL) Generate ¶
Generate creates a MySQL SQL dump from a schema structure. It generates SQL statements for all database objects in the schema, including: - Tables with columns, indexes, and constraints - Views - Stored procedures and functions - Triggers - User privileges
Parameters:
- schema: The schema structure to convert to MySQL SQL
Returns:
- string: The generated MySQL SQL statements
- error: An error if generation fails
func (*MySQL) Parse ¶
Parse takes a MySQL SQL dump content and parses it into a common schema structure. It processes various MySQL objects including: - Databases and schemas - Tables with columns and constraints - Indexes (including PRIMARY, UNIQUE, and FULLTEXT) - Views - Stored procedures and functions - Triggers - User privileges
Parameters:
- content: The MySQL SQL dump content to parse
Returns:
- *sqlmapper.Schema: The parsed schema structure
- error: An error if parsing fails
type MySQLStreamParser ¶ added in v0.5.0
type MySQLStreamParser struct {
// contains filtered or unexported fields
}
MySQLStreamParser implements the StreamParser interface for MySQL
func NewMySQLStreamParser ¶ added in v0.5.0
func NewMySQLStreamParser() *MySQLStreamParser
NewMySQLStreamParser creates a new MySQL stream parser
func (*MySQLStreamParser) GenerateStream ¶ added in v0.5.0
GenerateStream implements the StreamParser interface
func (*MySQLStreamParser) ParseStream ¶ added in v0.5.0
func (p *MySQLStreamParser) ParseStream(reader io.Reader, callback func(stream.SchemaObject) error) error
ParseStream implements the StreamParser interface
func (*MySQLStreamParser) ParseStreamParallel ¶ added in v0.5.0
func (p *MySQLStreamParser) ParseStreamParallel(reader io.Reader, callback func(stream.SchemaObject) error, workers int) error
ParseStreamParallel implements parallel processing for MySQL stream parsing