This project provides a Rust-based solution for migrating MSSQL databases to MySQL.

Related tags

Database db-migrator
Overview

MSSQL to MySQL Database Migration

Rust Version License

A Rust project to migrate MSSQL databases to MySQL, including table structures, column data types, and table data rows.

Features

  • Connects to MSSQL and MySQL databases to perform the migration.
  • Converts MSSQL table structures and column data types to their corresponding MySQL equivalents.
  • Transfers table data rows from MSSQL to MySQL.
  • Provides flexibility in configuring connection details, table mappings, and migration options.
  • Handles differences in data types, constraints, and other database-specific details during the migration process.

Dependencies

  • tokio - Asynchronous runtime for Rust.
  • tokio-util - Utilities for working with Tokio.
  • chrono - Date and time library for Rust.
  • toml - TOML parsing and serialization library for Rust.
  • tiberius - MSSQL database driver for Rust.
  • sqlx - Database toolkit for Rust, including support for MySQL.

Usage

  1. Copy the config.example.toml file to config.toml.
  2. Configure the connection details and whitelisted tables for the MSSQL and MySQL databases in the config.toml file.
  3. Customize the table mappings and migration options in the mappings.toml file.
  4. Build and run the migration tool using Cargo:
cargo run --release

Installation

Make sure you have Rust installed. You can install Rust from the official website: https://www.rust-lang.org/tools/install

Clone the repository:

git clone https://github.com/bitalizer/db-migrator.git
You might also like...
Mysql client library implemented in rust.

mysql This crate offers: MySql database driver in pure rust; connection pool. Features: macOS, Windows and Linux support; TLS support via nativetls cr

A user crud written in Rust, designed to connect to a MySQL database with full integration test coverage.

SQLX User CRUD Purpose This application demonstrates the how to implement a common design for CRUDs in, potentially, a system of microservices. The de

cogo rust coroutine database driver (Mysql,Postgres,Sqlite)

cdbc Coroutine Database driver Connectivity.based on cogo High concurrency,based on coroutine No Future'q,Output=*,No async fn, No .await , no Poll*

rust-mysql-simple support library for the r2d2 connection pool

r2d2-mysql rust-mysql-simple support library for the r2d2 connection pool.

A tool for automated migrations for PostgreSQL, SQLite and MySQL.

Models Models is an implementation for a SQL migration management tool. It supports PostgreSQL, MySQL, and SQLite. Quick Start install the CLI by runn

CRUD example with Rocket, Toql and MySQL

Todo (Rocket, Toql, MySQL) This is a little REST server built with Rocket, Toql and MySQL. The server allows to call CRUD functions on a Todo item. It

Gibbs MySQL Spyglass
Gibbs MySQL Spyglass

Gibbs MySQL Spyglass Ahoy Matey! The Gibbs MySQL Spyglass is a application used to capture application traffic into a MySQL database. It is designed t

fast & easy CLI and vscode extension specialized to format MySQL INSERT queries.
fast & easy CLI and vscode extension specialized to format MySQL INSERT queries.

insertfmt fast & easy CLI specialized to format MySQL INSERT queries. format queries so that they look like a table. NOTE: If you wanna use the VSCode

ksync - an okay file synchronisation solution, written in Rust

ksync - an okay file synchronisation solution ksync is a simple, immutable, file synchronisation solution written in Rust, using the tokio async frame

Comments
  • Hide details behind --verbose flag

    Hide details behind --verbose flag

    Only display verbose details such as executed queries and created table definitions when the --verbose flag is active. If this flag is not present, the program should only present a high-level overview of its progress. This overview will allow users to quickly identify the program's version and any warnings, making clear which tables are processed.

    opened by henno 0
  • Helpful hints for users to speed up INSERT queries in MySQL

    Helpful hints for users to speed up INSERT queries in MySQL

    When starting, the program should:

    1. check the 'max_allowed_packet' value set on the MySQL server. If this value is less than 16777217 (default is 16777216 or 16MB), it should show a yellow warning message that "The MySQL max_allowed_packet value is {} MB. If you have more than 1.6GB of RAM, this is not optimal because it should be between 1% of your total RAM and 1GB".
    2. check the 'innodb_buffer_pool_size' value set on the MySQL server. If this value is less than 134217729 (default is 134217728 which is 128MB), it should show a yellow warning message that "The MySQL max_allowed_packet value is {} MB which is not optimal because it should be 50-75% of total RAM in case of a dedicated MySQL server".
    opened by henno 0
  • Releases

    Releases

    It would be good if people could just download the binary without having to install Rust and Cargo on their machines to use the program.

    The binary should diplay its release version number when it is executed.

    opened by henno 0
  • Show header with program's metadata

    Show header with program's metadata

    It would be good if the program showed a header every time it runs where one can see a link to this github page, so that when a person who does not know what program this is runs the executable, he can refer to this Github project page to read the README

    opened by henno 0
Owner
Bitalizer
Constantly learning, fueled by curiosity. Exploring new possibilities, broadening horizons. Passionate about coding and continuous growth.
Bitalizer
Provides a Rust-based SQLite extension for using Hypercore as the VFS for your databases.

SQLite and Hypercore A Rust library providing SQLite with an virtual file system to enable Hypercore as a means of storage. Contributing The primary r

Jacky Alciné 14 Dec 5, 2022
TDS 7.2+ (mssql / Microsoft SQL Server) async driver for rust

Tiberius A native Microsoft SQL Server (TDS) client for Rust. Supported SQL Server versions Version Support level Notes 2019 Tested on CI 2017 Tested

Prisma 189 Dec 25, 2022
Asyncronous Rust Mysql driver based on Tokio.

mysql-async Tokio based asynchronous MySql client library for rust programming language. Installation Library hosted on crates.io. [dependencies] mysq

Anatoly I 292 Dec 30, 2022
Optimistic multi-version concurrency control (MVCC) for main memory databases, written in Rust.

MVCC for Rust This is a work-in-progress the Hekaton optimistic multiversion concurrency control library in Rust. The aim of the project is to provide

Pekka Enberg 32 Apr 20, 2023
Query is a Rust server for your remote SQLite databases and a CLI to manage them.

Query Query is a Rust server for your remote SQLite databases and a CLI to manage them. Table Of Contents Run A Query Server CLI Install Use The Insta

Víctor García 6 Oct 6, 2023
CLI tool to work with Sled key-value databases.

sledtool CLI tool to work with Sled key-value databases. $ sledtool --help Usage: sledtool <dbpath> <command> [<args>] CLI tool to work with Sled da

Vitaly Shukela 27 Sep 26, 2022
Engula empowers engineers to build reliable and cost-effective databases.

Engula is a storage engine that empowers engineers to build reliable and cost-effective databases with less effort and more confidence. Engula is in t

Engula 706 Jan 1, 2023
Sled - the champagne of beta embedded databases

key value buy a coffee for us to convert into databases documentation chat about databases with us sled - it's all downhill from here!!! An embedded d

Tyler Neely 6.6k Jan 8, 2023
Replibyte - a powerful tool to seed your databases

Seed Your Development Database With Real Data ⚡️ Replibyte is a powerful tool to seed your databases with real data and other cool features ?? Feature

Qovery 3.4k Jan 9, 2023
A highly scalable MySQL Proxy framework written in Rust

mysql-proxy-rs An implementation of a MySQL proxy server built on top of tokio-core. Overview This crate provides a MySQL proxy server that you can ex

AgilData 175 Dec 19, 2022