{"id":20748856,"url":"https://github.com/gustavohennig/simpledatabasereplicator","last_synced_at":"2025-04-28T12:06:23.405Z","repository":{"id":72515025,"uuid":"131717607","full_name":"GustavoHennig/SimpleDatabaseReplicator","owner":"GustavoHennig","description":"Simple Database Replicator is a very simple database data synchronizer, it loads a bunch of rows from source and destination, compares, and insert or update in the destination what is different.","archived":false,"fork":false,"pushed_at":"2025-03-24T15:24:59.000Z","size":1069,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-28T12:06:16.392Z","etag":null,"topics":["data-synchronization","database","database-replication","database-replicator","replicator"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GustavoHennig.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-01T13:42:36.000Z","updated_at":"2025-03-24T15:25:03.000Z","dependencies_parsed_at":"2024-11-17T23:03:42.056Z","dependency_job_id":null,"html_url":"https://github.com/GustavoHennig/SimpleDatabaseReplicator","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GustavoHennig%2FSimpleDatabaseReplicator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GustavoHennig%2FSimpleDatabaseReplicator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GustavoHennig%2FSimpleDatabaseReplicator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GustavoHennig%2FSimpleDatabaseReplicator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GustavoHennig","download_url":"https://codeload.github.com/GustavoHennig/SimpleDatabaseReplicator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251311330,"owners_count":21569009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-synchronization","database","database-replication","database-replicator","replicator"],"created_at":"2024-11-17T08:18:56.412Z","updated_at":"2025-04-28T12:06:23.397Z","avatar_url":"https://github.com/GustavoHennig.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿﻿# Simple Database Replicator\r\n\r\nThis is a very simple database data synchronizer. It loads a bunch of rows from the source and destination, compares them, and inserts or updates the differences into the destination.\r\n\r\nThis project was created in 2006 to resolve a database benchmarking problem, then it was abandoned. Now, I am resurrecting the project and fixing the old, ugly code.\r\n\r\n\r\n\u003e Since this is a very old project, it was created by an inexperienced developer, so don't expect good code quality. I am trying to fix it, but it is a slow process.\r\n\r\n## Replication Purpose\r\n - It is a one-way data synchronizer.\r\n - Database agnostic: it should work with any database with some adjustments (well tested with SQL Server, Firebird, SQLite, MySQL, and Postgres).\r\n - Speed: it uses very little from the drivers; everything is done by simple queries.\r\n\r\n## Known Issues / TODO\r\n- [ ] Consider using an existing library for queries, like https://github.com/sqlkata/querybuilder.\r\n- [ ] Delete is not implemented.  \r\n- [ ] Use internal row identity to optimize synchronization (like Postgres xmin).  \r\n- [ ] Schema must be identical.  \r\n- [ ] Not tested with all database scenarios.  \r\n- [ ] Blob type not supported.  \r\n- [ ] Limited UI usability – implemented the minimum to work.  \r\n- [ ] The internationalization was abandoned.  \r\n- [ ] It's not using parameters for the queries, which causes problems according to the database collation and culture settings.  \r\n- [ ] Sequence updates are not working properly.  \r\n- [ ] Improve connection string configuration screen  \r\n- [ ] Remove hard-coded database settings  \r\n- [ ] Simulate synchronization (with changes preview)\r\n- [ ] Export SQL queries to synchronize manually\r\n\r\n\r\n\r\nOriginally, this program had a simple schema migration function, but it was removed. For DDL and schema migration, there are many good programs available, such as this one: \r\n  http://fishcodelib.com/DBMigration.htm\r\n\r\nSince this code is old, created in 2006 using .NET Framework 2.0 (now migrated to ~~.NET 4.5~~ .NET 8), some parts of the code could be simpler with some refactoring.\r\n\r\nPlease, feel free to contribute with Pull Requests ;)\r\n\r\n## Screenshots\r\n\r\n![alt text](https://raw.githubusercontent.com/GustavoHennig/SimpleDatabaseReplicator/master/Screenshots/main1.png \"Main screen running\")\r\n![alt text](https://raw.githubusercontent.com/GustavoHennig/SimpleDatabaseReplicator/master/Screenshots/main-running.png \"Main screen running\")\r\n![alt text](https://raw.githubusercontent.com/GustavoHennig/SimpleDatabaseReplicator/master/Screenshots/replication-task-info.png \"Configuring connection strings\")\r\n![alt text](https://raw.githubusercontent.com/GustavoHennig/SimpleDatabaseReplicator/master/Screenshots/replication-task-info-select-table.png \"Selecting tables\")\r\n\r\n\r\n\r\n\r\nGustavo Augusto Hennig\r\n\r\nGH Software - [Plagius - Plagiarism Checker](https://www.plagius.com/en)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgustavohennig%2Fsimpledatabasereplicator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgustavohennig%2Fsimpledatabasereplicator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgustavohennig%2Fsimpledatabasereplicator/lists"}