{"id":17025752,"url":"https://github.com/pjkaufman/java_diffchecker","last_synced_at":"2026-04-09T02:30:58.405Z","repository":{"id":124242364,"uuid":"102680324","full_name":"pjkaufman/Java_DiffChecker","owner":"pjkaufman","description":"Java Database Difference Checker GUI Application","archived":false,"fork":false,"pushed_at":"2021-04-12T02:31:18.000Z","size":46241,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-10T11:13:22.794Z","etag":null,"topics":["database-difference-checker","java","java-diffchecker","python27","python3"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pjkaufman.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,"zenodo":null}},"created_at":"2017-09-07T02:16:25.000Z","updated_at":"2020-08-03T00:09:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"21c97e45-48b6-410a-8e45-46792ed190c2","html_url":"https://github.com/pjkaufman/Java_DiffChecker","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/pjkaufman/Java_DiffChecker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjkaufman%2FJava_DiffChecker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjkaufman%2FJava_DiffChecker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjkaufman%2FJava_DiffChecker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjkaufman%2FJava_DiffChecker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pjkaufman","download_url":"https://codeload.github.com/pjkaufman/Java_DiffChecker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjkaufman%2FJava_DiffChecker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31582538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["database-difference-checker","java","java-diffchecker","python27","python3"],"created_at":"2024-10-14T07:29:57.399Z","updated_at":"2026-04-09T02:30:58.400Z","avatar_url":"https://github.com/pjkaufman.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Database Difference Checker - Database Updater [![Current Issues](https://img.shields.io/github/issues/pjkaufman/Java_DiffChecker.svg)](https://github.com/pjkaufman/Java_DiffChecker/issues)  [![License](https://img.shields.io/github/license/pjkaufman/Java_DiffChecker.svg)](https://github.com/pjkaufman/Java_DiffChecker/blob/master/LICENSE)\n###### By Peter Kaufman\n\n## Description\n\nCompares two databases and generates the statements that are needed to make the two databases the same. The statements can then be run or just copied to review or run later.\n\n## Table of Contents\n\n* [Installation](#installation)\n* [Usage](#usage)\n* [Supported Database Implimentations](#supported-database-implimentations)\n* [Features](#features)\n* [Documentation](#documentation)\n* [License](#license)\n\n## Installation\n\n### Dependencies\n\n1. [Java](https://java.com/en/download/)\n2. [Python 2.7 or later](https://www.python.org/downloads/)\n3. Some kind of hosting service for the database implementation if need:\n    * MySQL - one option is [WAMP](http://wampserver.aviatechno.net/)\n      * For development I recommend [MySQL Workbench](https://dev.mysql.com/downloads/workbench/)\n    * SQLite - NA since your computer hosts the database.\n      * For development I recommend [SQLiteStudio](https://sqlitestudio.pl/index.rvt?act=download)\n    * Couchbase - one option is [Couchbase Server Community Edition](https://www.couchbase.com/downloads)\n    * MongoDB - one option is [MongoDB Compass Community](https://www.mongodb.com/download-center/community)\n\n_Note: the python scripts have only been tested in Python 2.7 and 3.7_\n\nClone this repo by running `git clone https://github.com/pjkaufman/Java_DiffChecker.git`.\n\nMake sure that Python and the jre paths have been added to your PATH variable.\n\n[Back to Table of Contents](#table-of-contents)\n\n## Usage\n\nGo to the base directory and run\n\n```\npython routines.py\n```\n\nYou should see\n\n```\nRoutine Options\nrun - makes and runs the JAR file\npush - commits the current repo and pushes it\ndebug - runs the current code base for testing\ntest - runs the unit tests on the source code\nclean - deletes the test, logs, and build directories\nEnter desired option:\n```\n\n### Running\n\nWhen prompted by the script for a routine to run, type 'run'.\n\nIf there are no errors you will see the following GUI:\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"UserGuides\\images\\runResult.png\" alt=\"Database Difference Checker Home\" height = \"300\"/\u003e\n\u003c/div\u003e\n\n### Testing\n\nAfter modifying any of the Java files in the repository, you can go to the base directory of this repository and run\n\n```\npython routines.py\n```\n\nWhen prompted for the routine to run, enter 'debug'. This will compile all of the current Java files into the test/dbdiffchecker folder where it will be run if no errors occur (no JAR file will be created).\n\n### Manually Running The JAR File\n\nIn order to use the JAR file with logs, make sure that where you run the jar file you have a logs folder. Also make sure that the jar file is located in the same directory as the lib folder containing the jar files for the reopsitory.\n\nTo run the applciation through the JAR file run\n\n```\njava -jar path_to_jar_file\n```\n\n[Back to Table of Contents](#table-of-contents)\n\n## Supported Database Implimentations\n\n* SQL\n  * MySQL\n    * Tables, Columns, Indices, and Views (non-nested) can be compared\n  * SQLite\n    * Tables, Columns, Indices, and Views (non-nested) can be compared\n* NoSQL\n  * Couchbase\n    * Documents, and Indices can be compared\n  * MongoDB\n    * Collections can be compared\n\n[Back to Table of Contents](#table-of-contents)\n\n## Features\n**1. Two Connection Database Comparison**\n\nThis type of database comparison connects to two databases and compares them yeilding the SQL statements to make them the same.\n\nWhen going to this tab, the user input forms are generated dynamically based on the database implementation selected and look something like this:\n\n\u003cimg src=\"UserGuides\\images\\twoDBComparison.png\" alt=\"Two Database Comparison MySQL Screen\" height = \"300\"/\u003e\n\nFill out each of the needed fields and click Produce Statements.\n\n*Note: the default port for MySQL is 3306*\n\n**2. One Connection Database Comparison**\n\nThis type of database comparison connects to one database and uses a serialized file to compare them yeilding the SQL statements to make them the same.\n\nWhen going to this tab, the user input forms are generated dynamically based on the database implementation selected and look something like this:\n\n\u003cimg src=\"UserGuides\\images\\oneDBComparison.png\" alt=\"One Database Comparison MySQL Screen\" height = \"300\"/\u003e\n\nFill out each of the needed fields and click Produce Statments.\n\n*Note: the default port for MySQL is 3306*\n\n**3. Database Snapshot**\n\nA database snapshot is where a \"copy\" of the schema structure for the database is written to a serialized file for later use. It stores information such as tables, indexes, views, columns, and other pertinent data for database comparisons.\n\nWhen going to this tab, the user input forms are generated dynamically based on the database implementation selected and look something like this:\n\n\u003cimg src=\"UserGuides\\images\\takeDBSnapshot.png\" alt=\"Database Snapshot MySQL Screen\" height = \"300\"/\u003e\n\nFill out each of the needed fields and click Take Snapshot.\n\n*Note: the default port for MySQL is 3306*\n\n**4. Review Last Set of Statements**\n\nThis option allows the user to see the last set of SQL statements that were run.\nAfter selecting this option, you will see something similar to this:\n\n\u003cimg src=\"UserGuides\\images\\lastSQLSet.png\" alt=\"Last Set of Statments Generated\" height = \"300\"/\u003e\n\n**5. Review Logs**\n\nThe review logs contain information such as stack traces for errors that have occured or how long a database comparison or SQL run took.\n\nAfter selecting this option, you will see something similar to this:\n\n\u003cimg src=\"UserGuides\\images\\runLog.png\" alt=\"Run Logs\" height = \"300\"/\u003e\n\n[Back to Table of Contents](#table-of-contents)\n\n## Documentation\n\n### How It Works\n\n1. [V1.0.0](UserGuides/pdf/DatabaseDifferenceCheckerReport.pdf)\n2. [V2.0.0](UserGuides/pdf/DatabaseDifferenceCheckerReportV2.0.0.pdf)\n3. [V2.0.1](UserGuides/pdf/DatabaseDifferenceCheckerReportV2.0.1.pdf)\n\n### Java Documentation/API\n\nJava documentation can be found [here](https://pjkaufman.github.io/Java_DiffChecker/).\n\n[Back to Table of Contents](#table-of-contents)\n\n### Error Code List\n\nThe error codes can be found [here](https://github.com/pjkaufman/Java_DiffChecker/wiki/Error-Codes).\n\n## License\n\n[MIT](LICENSE)\n\n[Back to Table of Contents](#table-of-contents)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjkaufman%2Fjava_diffchecker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpjkaufman%2Fjava_diffchecker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjkaufman%2Fjava_diffchecker/lists"}