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
- type MySQL
- type MySQLStreamParser
- func (p *MySQLStreamParser) GenerateStream(schema *sqlmapper.Schema, writer io.Writer) error
- func (p *MySQLStreamParser) ParseStream(reader io.Reader, callback func(sqlmapper.SchemaObject) error) error
- func (p *MySQLStreamParser) ParseStreamParallel(reader io.Reader, callback func(sqlmapper.SchemaObject) error, workers int) error
Constants ¶
This section is empty.
Variables ¶
var ( // MySQLToPostgreSQL MySQL'den PostgreSQL'e veri tipi dönüşümleri 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 MySQL'den SQL Server'a veri tipi dönüşümleri 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 MySQL'den Oracle'a veri tipi dönüşümleri 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 MySQL'den SQLite'a veri tipi dönüşümleri 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", } )
MySQL'den diğer veritabanı tiplerine veri tipi dönüşüm haritaları
Functions ¶
This section is empty.
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 NewMySQL ¶
func NewMySQL() *MySQL
NewMySQL creates and initializes a new MySQL parser instance. It returns a parser that can handle MySQL specific SQL syntax and schema structures.
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(sqlmapper.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(sqlmapper.SchemaObject) error, workers int) error
ParseStreamParallel implements parallel processing for MySQL stream parsing