{"id":17361682,"url":"https://github.com/gms1/jdbmigr","last_synced_at":"2025-08-02T11:31:15.460Z","repository":{"id":78667472,"uuid":"167781484","full_name":"gms1/jdbmigr","owner":"gms1","description":"export/import database content to/from XML, Fast-Infoset, CSV or DML in batch (Java(JDBC) command line tools)","archived":false,"fork":false,"pushed_at":"2023-02-10T07:36:39.000Z","size":289,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-08T18:40:36.189Z","etag":null,"topics":["batch","command-line","csv","database","export","fast-infoset","import","java","jdbc","xml"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gms1.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2019-01-27T07:13:56.000Z","updated_at":"2024-08-17T14:22:57.000Z","dependencies_parsed_at":"2023-03-08T21:00:30.551Z","dependency_job_id":null,"html_url":"https://github.com/gms1/jdbmigr","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gms1/jdbmigr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gms1%2Fjdbmigr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gms1%2Fjdbmigr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gms1%2Fjdbmigr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gms1%2Fjdbmigr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gms1","download_url":"https://codeload.github.com/gms1/jdbmigr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gms1%2Fjdbmigr/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268378965,"owners_count":24240907,"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","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"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":["batch","command-line","csv","database","export","fast-infoset","import","java","jdbc","xml"],"created_at":"2024-10-15T19:34:43.936Z","updated_at":"2025-08-02T11:31:15.452Z","avatar_url":"https://github.com/gms1.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jdbmigr\n\n## Introduction\n\n**jdbmigr** is a Java(JDBC) command-line tools to export and import database data as XML, Fast-Infoset, CSV or DML.\nXML and Fast-Infoset are using the Webrowset schema, so you can synchronize changes in the webrowset document (insertRow-, modifyRow- and deleteRow-tags) back to the datasource.\nThis tool is aimed at an audience of developers or administrators who need to quickly transfer data between different DBMS using roughly the same schema.\n\nThis was my first open source project (2006-2007) distributed from [sourceforge.net](https://sourceforge.net/projects/jdbmigr/)\n\nbtw and this was my first attempt programming in Java ;) and sorry, this project does not have any automatic tests yet.\n\n\u003e NOTE: PRs Welcome!\n\n## License\n\n**jdbmigr** is released under the terms of the MIT License. A copy of the License is provided in the LICENSE file.\n\n## Contacts\n\n[github.com](https://github.com/gms1/jdbmigr)\n\n## Installation\n\njust unzip to a new directory\n\n### Prerequisites\n\n- Java 1.8+\n- A JDBC Driver with Support for Batch-Inserts (PreparedStatement)\n\n## Build from Source with Maven\n\n```Bash\ngms@orion:~/work/jdbmigr/src (master)$ mvn clean package\n...\n[INFO] Building tar : /home/gms/work/jdbmigr/src/jdbmigr/target/jdbmigr-0.4-SNAPSHOT-bin.tar.gz\n[INFO] Building zip: /home/gms/work/jdbmigr/src/jdbmigr/target/jdbmigr-0.4-SNAPSHOT-bin.zip\n[INFO] Building tar : /home/gms/work/jdbmigr/src/jdbmigr/target/jdbmigr-0.4-SNAPSHOT-src.tar.gz\n[INFO] Building zip: /home/gms/work/jdbmigr/src/jdbmigr/target/jdbmigr-0.4-SNAPSHOT-src.zip\n...\ngms@orion:~/work/jdbmigr/src (master)$\n```\n\nif you are on Linux and want to have a test installation ready for use:\n\n```Bash\ngms@orion:~/work/jdbmigr (master)$ ./build/install\n```\n\nAdditional artifacts (e.g drivers, datasource.xml) can be placed in the 'external' directory so they are automatically added to the 'install' directory\n\n## Configuration\n\n### Customize the configuration file \"etc/datasource.xml\"\n\nThis configuration-file sets the details on the datasources you are going to connect to.\n\nThe command \"dbping\" can be used to test your configuration:\n\nIn a command prompt, type:\n\n```Bash\ndbping -U username -P password datasourcename\n```\n\n\u003e NOTE: If you are providing the jdbc url, please enter the driver name instead of the datasource name:\n\n```Bash\ndbping -u url -U username -P password drivername\n```\n\n\n### Supported Formats and corresponding program options\n\n\u003e BINARY, VARBINARY, LONGBINARY and BLOB columns are supprted by using base64 encoding\n\n- csv (comma-separated values), with following options\n\n  - column delimiter:                                      --coldel column-delimiter\n  - row delimiter:                                         --rowdel row-delimiter\n  - disable character quoting:                             --no-quotes\n  - do not escape the quote character using double quotes: --no-doublequotes\n  - disable column header:                                 --no-columnheader\n\n- XML using the \"WebRowSet XML Schema (by Jonathan Bruce (Sun Microsystems Inc.))\"\n\n- Fast Infoset Document (Binary XML) using the \"WebRowSet XML Schema (by Jonathan Bruce (Sun Microsystems Inc.))\"\n\n### How to export\n\n- To export a result set of specific query:\n\n```Bash\nxmlexpqry -o outputfile -U username -P password datasourcename \"select ...\"\n```\n\n- To export a set of tables (using schema- and table- pattern)\n\n```Bash\nxmlexptab -s schemapattern -t tablepattern -U username -P password datasourcename\n```\n\n- To export a set of tables (using a filelist)\n\n```Bash\nxmlexptab --filelist filelist -U username -P password datasourcename\n```\n\n### How to import\n\nThe table list will be sorted, to avoid foreign key constraint violations\n\n- To import a set of tables (using schema- and table- pattern)\n\n```Bash\nxmlimptab -s schemapattern -t tablepattern -U username -P password datasourcename\n```\n\n- To import a set of tables (using a filelist)\n\n```Bash\nxmlimptab --filelist filelist -U username -P password datasourcename\n```\n\n- you can modify the webrowset document using insertRow-,modifyRow- and deleteRow-tags\n and synchronize this changes back to the datasource\n\n  - use the \"--sync\" option to synchronize insertRow-, modifyRow- and deleteRow-tags with the datasource\n  - use the \"--all\" option, to import all and synchronize changes\n\n### How to create a filelist\n\n```Bash\ndbtables -s schemapattern1 -t tablepattern1 -U username -P password datasourcename \u003efilelist\ndbtables -s schemapattern2 -t tablepattern2 -U username -P password datasourcename \u003e\u003efilelist\n```\n\nyou can customize the generated filelist:\nsimple csv format (without character quoting):\n\n- column 1 (mandatory): schemaname.tablename\n- column 2 (optional): input/output filename\n- column 3 (optional): select statement\n\n### How to convert a Fast Infoset Document to XML and vice versa\n\n```Bash\nfinftoxml inputfile.finf outputfile.xml\nxmltofinf inputfile.xml outputfile.finf\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgms1%2Fjdbmigr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgms1%2Fjdbmigr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgms1%2Fjdbmigr/lists"}