Mimetis / Dotmim.sync
Licence: mit
A brand new database synchronization framework, multi platform, multi databases, developed on top of .Net Standard 2.0. https://dotmimsync.readthedocs.io/
Stars: ✭ 406
Projects that are alternatives of or similar to Dotmim.sync
Nut
Advanced, Powerful and easy to use ORM for Qt
Stars: ✭ 181 (-55.42%)
Mutual labels: sql, database, mysql, sqlite, sql-server
Beekeeper Studio
Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.
Stars: ✭ 8,053 (+1883.5%)
Mutual labels: sql, database, mysql, sqlite, sql-server
Electrocrud
Database CRUD Application Built on Electron | MySQL, Postgres, SQLite
Stars: ✭ 1,267 (+212.07%)
Mutual labels: sql, database, mysql, sqlite
Qtl
A friendly and lightweight C++ database library for MySQL, PostgreSQL, SQLite and ODBC.
Stars: ✭ 92 (-77.34%)
Mutual labels: sql, database, mysql, sqlite
Goose
A database migration tool. Supports SQL migrations and Go functions.
Stars: ✭ 2,112 (+420.2%)
Mutual labels: sql, database, mysql, sqlite
Migrate
Database migrations. CLI and Golang library.
Stars: ✭ 7,712 (+1799.51%)
Mutual labels: sql, database, mysql, sqlite
Goqu
SQL builder and query library for golang
Stars: ✭ 984 (+142.36%)
Mutual labels: sql, database, mysql, sqlite
Dbeaver
Free universal database tool and SQL client
Stars: ✭ 23,752 (+5750.25%)
Mutual labels: sql, database, mysql, sqlite
Go Mysql Server
A MySQL-compatible relational database with a storage agnostic query engine. Implemented in pure Go.
Stars: ✭ 445 (+9.61%)
Mutual labels: sql, database, mysql, sql-server
Linq2db
Linq to database provider.
Stars: ✭ 2,211 (+444.58%)
Mutual labels: sql, database, mysql, sqlite
Migrate
Database migrations. CLI and Golang library.
Stars: ✭ 2,315 (+470.2%)
Mutual labels: sql, database, mysql, sqlite
Db
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Stars: ✭ 2,832 (+597.54%)
Mutual labels: sql, database, mysql, sqlite
Go Sqlbuilder
A flexible and powerful SQL string builder library plus a zero-config ORM.
Stars: ✭ 539 (+32.76%)
Mutual labels: sql, database, mysql, sqlite
Evolve
Database migration tool for .NET and .NET Core projects. Inspired by Flyway.
Stars: ✭ 477 (+17.49%)
Mutual labels: sql, database, mysql, sqlite
Kangaroo
SQL client and admin tool for popular databases
Stars: ✭ 127 (-68.72%)
Mutual labels: sql, database, mysql, sqlite
Prisma
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite & MongoDB (Preview)
Stars: ✭ 18,168 (+4374.88%)
Mutual labels: database, mysql, sql-server, sqlite
Querybuilder
SQL query builder, written in c#, helps you build complex queries easily, supports SqlServer, MySql, PostgreSql, Oracle, Sqlite and Firebird
Stars: ✭ 2,111 (+419.95%)
Mutual labels: sql, database, mysql, sql-server
Fluentmigrator
Fluent migrations framework for .NET
Stars: ✭ 2,636 (+549.26%)
Mutual labels: sql, database, mysql, sql-server
Sqlfiddle3
New version based on vert.x and docker
Stars: ✭ 242 (-40.39%)
Mutual labels: sql, database, mysql, sql-server
See the Azure Devops CI : https://dev.azure.com/dotmim/Dotmim.Sync
Sources
Release and pre-release are hosted on nuget.org : https://www.nuget.org/packages?q=dotmim.sync
Documentation
Read the full documentation on https://dotmimsync.readthedocs.io/
Dotmim.Sync
DotMim.Sync (DMS) is a straightforward framework for syncing relational databases, developed on top of .Net Standard 2.0, available and ready to use within IOT, Xamarin, .NET, UWP and so on :)
Multi Databases | Cross Plaform | .Net Standard 2.0 |
---|---|---|
TL;DR;
Here is the easiest way to create a first sync, from scratch :
- Create a .Net Standard 2.0 compatible project, like a .Net Core 2.0 / 3.1 or .Net Fx 4.8 console application.
- Add the nugets packages Dotmim.Sync.SqlServer (or Dotmim.Sync.MySql if you want to tests MySql) and Dotmim.Sync.Sqlite
- Choose one database for testing:
- Either SQL Server test database : AdventureWorks lightweight script for SQL Server
- Or MySql test database : AdventureWorks lightweight script for MySQL Server
- Add this code :
// Sql Server provider, the "server" or "hub".
SqlSyncProvider serverProvider = new SqlSyncProvider(
@"Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=true;");
// Sqlite Client provider acting as the "client"
SqliteSyncProvider clientProvider = new SqliteSyncProvider("advworks.db");
// Tables involved in the sync process:
var tables = new string[] {"ProductCategory", "ProductDescription", "ProductModel", "Product", "ProductModelProductDescription",
"Address", "Customer", "CustomerAddress", "SalesOrderHeader", "SalesOrderDetail" };
// Sync agent
SyncAgent agent = new SyncAgent(clientProvider, serverProvider, tables);
do
{
var result = await agent.SynchronizeAsync();
Console.WriteLine(result);
} while (Console.ReadKey().Key != ConsoleKey.Escape);
And here is the result you should have, after a few seconds:
Synchronization done.
Total changes uploaded: 0
Total changes downloaded: 2752
Total changes applied: 2752
Total resolved conflicts: 0
Total duration :0:0:3.776
You're done !
Now try to update a row in your client or server database, then hit enter again.
You should see something like that:
Synchronization done.
Total changes uploaded: 0
Total changes downloaded: 1
Total changes applied: 1
Total resolved conflicts: 0
Total duration :0:0:0.045
Yes it's blazing fast !
Need Help
- Check the full documentation, available here : https://dotmimsync.readthedocs.io/
- Feel free to ping me: @sebpertus
- DMS font is created from the awesome Cubic font from https://www.dafont.com/cubic.font
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].