Skip to content

A high-performance SQL parser and converter library written in Go, designed to handle large-scale database schema migrations and transformations.

License

Notifications You must be signed in to change notification settings

mstgnz/sqlmapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Dec 29, 2024
5d01b7b · Dec 29, 2024
Dec 27, 2024
Dec 28, 2024
Dec 27, 2024
Dec 28, 2024
Dec 27, 2024
Dec 28, 2024
Dec 28, 2024
Dec 28, 2024
Dec 28, 2024
Dec 28, 2024
Dec 28, 2024
Dec 27, 2024
Jan 20, 2024
Dec 26, 2024
Dec 27, 2024
Dec 29, 2024
Dec 29, 2024
Dec 27, 2024
Dec 27, 2024
Dec 27, 2024
Dec 28, 2024

Repository files navigation

SQLMapper

SQLMapper is a powerful SQL schema parser and generator that supports multiple database systems. It can parse SQL dump files and generate schema definitions in a standardized format.

Features

  • Multi-database support:
    • MySQL
    • PostgreSQL
    • SQLite
    • SQL Server
    • Oracle
  • Schema parsing and generation
  • Support for various SQL objects:
    • Tables
    • Views
    • Functions
    • Procedures
    • Triggers
    • Indexes
    • Sequences

Development Status

  • Basic schema parsing and generation is implemented
  • Stream processing feature is under development
    • Basic stream parsing functionality is implemented
    • Tests for stream processing are pending
    • Parallel stream processing is planned
  • Documentation will be updated as features are completed

Installation

go get github.com/mstgnz/sqlmapper

Usage

Basic Usage

package main

import (
    "fmt"
    "github.com/mstgnz/sqlmapper"
)

func main() {
    // Create a new parser for your database type
    parser := sqlmapper.NewParser(sqlmapper.MySQL)
    
    // Parse SQL content
    schema, err := parser.Parse(sqlContent)
    if err != nil {
        panic(err)
    }
    
    // Generate SQL from schema
    sql, err := parser.Generate(schema)
    if err != nil {
        panic(err)
    }
}

Supported SQL Objects

  • Tables
    • Columns with data types
    • Primary keys
    • Foreign keys
    • Unique constraints
    • Check constraints
  • Views
  • Functions
  • Procedures
  • Triggers
  • Indexes
  • Sequences

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

About

A high-performance SQL parser and converter library written in Go, designed to handle large-scale database schema migrations and transformations.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published