{"id":13941476,"url":"https://github.com/krismorte/database-diagrams","last_synced_at":"2026-01-26T22:05:51.504Z","repository":{"id":37350599,"uuid":"184945882","full_name":"krismorte/database-diagrams","owner":"krismorte","description":" automatic database documentation solution using shemaspy","archived":false,"fork":false,"pushed_at":"2024-04-08T07:56:23.000Z","size":23451,"stargazers_count":10,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-20T04:55:53.091Z","etag":null,"topics":["crontab","database-diagrams","database-documentation","docker","docker-image","java","mssql","mysql","oracle","postgresql","schemaspy"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/krismorte.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":"2019-05-04T21:26:47.000Z","updated_at":"2024-04-06T10:04:39.000Z","dependencies_parsed_at":"2024-11-27T10:41:07.680Z","dependency_job_id":null,"html_url":"https://github.com/krismorte/database-diagrams","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/krismorte/database-diagrams","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krismorte%2Fdatabase-diagrams","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krismorte%2Fdatabase-diagrams/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krismorte%2Fdatabase-diagrams/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krismorte%2Fdatabase-diagrams/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krismorte","download_url":"https://codeload.github.com/krismorte/database-diagrams/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krismorte%2Fdatabase-diagrams/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28789723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["crontab","database-diagrams","database-documentation","docker","docker-image","java","mssql","mysql","oracle","postgresql","schemaspy"],"created_at":"2024-08-08T02:01:19.690Z","updated_at":"2026-01-26T22:05:51.472Z","avatar_url":"https://github.com/krismorte.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# database-diagrams\n\n\u003e Please support a project by simply putting a Github star. \nShare this library with friends on Twitter and everywhere else you can.\n\nThanks to the [SchemaSpy](https://github.com/schemaspy/schemaspy) developers\n\nThis code was made to implementing full database documentation per server that wasn't implementing in the SchemaSpy originally project. This project also include a crontab scheduling, a nginx server to show the results and a java application to manager and coordinate the execution and build a main page to redirect to all databases sites made.\n\n## Run Docker Pull\n```\ndocker pull krismorte/databasediagrams:2.2\n```\n\n## Run a test\n\nThis project include a docker-compose file to test the solution locally running against 2 mysql and 1 postgres containers \n\n```\ngit clone https://github.com/krismorte/database-diagrams.git\ncd database-diagrams/\ndocker-compose up\n```\n\non dbconf folder you will find .prop files with the database servers configuration and also a mysql and postgres script used to create the diagram_test database when the container is created.\n\n## Run Docker Container\nTo use this solution you have to edit the .prop files with your own servers and run this follow command:\n\n```\ndocker run -it --rm -p 80:80 -v $PWD/dbconf:/dbconf --name databasediagrams krismorte/databasediagrams:2.2\n```\n_*this command will show the output and lock the terminal, to run in production please change the -it option for -d_\n\nYou can put your company name at the main page using the option `-e COMPANY_NAME=MyCompany`\n\naccess the url http://localhost/\n\nThe output don't show the schemaspy log to see that run the follow command:\n\n```\ndocker exec databasediagrams cat /var/log/script.log\n```\n\nDepends on the amount of databases and tables this process can take a long time to run, be aware about this. By default the script will run everyday at as 07AM you can overwrite the env __CRN__\n\n, but you can run manually to see the result. This process can take several minutes depends the database sizes\n\nThis solution was prepared and tested on mysql, sql server, postgres and oracle. The Schemaspy support much more databases as you can see [here](https://github.com/schemaspy/schemaspy/tree/master/src/main/resources/org/schemaspy/types) but my solution wrapper the schemaspy so I will add more database as soon as possible.\n\u003e schemaspy supported by database-diagrams are mssql, mssql05, mssql08, mysql, mariadb, postgres, postgres11, orathin\n\n### Oracle Details\n\nAs Oracle remove jdbc jar from maven repository you need to download the jdbc manually on the [official site](https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html) and put the jar file on the same folder with your .prop files (ojdbc6.jar, ojdbc7.jar or ojdbc8.jar). Also you have to inform the SID on oracle prop file `db.oracsid=` and the `db.query` has no efect on Oracle.\n\n## Build the Image\nSimple build\n``` #docker build -t krismorte/databasediagrams:2.2 .```\n\nBuild for multi arch \n``` #docker buildx  --builder docker-container  build --platform linux/amd64,linux/arm64/v8  -t krismorte/databasediagrams:2.2 .```\n\n\nthe full documentarion of the container is [here](https://hub.docker.com/r/krismorte/databasediagrams) \n\n## PROP file\n- __Required__\n- _optional_\n\nFile's configuration\n- __schemaspy.db.type=mysql__ this fild is necessary to schemaspy knows about the database \n- __db.server=172.17.0.1__ server name\n- __db.user=root__ database user name\n- __db.password=secret__ user's password\n- _db.port=3307_ just necessary if you are using a different port\n- _db.query=SELECT DISTINCT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME ='performance_schema'_ you can customize the database query to include or exclude some database. Has no effect on Oracle.\n- _**db.oracsid=xe**_ required only when the type was orathin\n\n## Under the hook\n\nThe entry point will config the cron job, config the oracle on the local maven repository when it's available, running the application for the first time and up the nginx server. The cron job call a second script who contains the main java application.\n\n### Docker Buildx Install on Mac\n ```\n brew install docker-buildx\n\nln -sfn $(which docker-buildx) ~/.docker/cli-plugins/docker-buildx \n\n docker buildx create --name docker-container --driver docker-container\n\n docker buildx build --platform linux/amd64,linux/arm64/v8  -t krismorte/databasediagrams:2.2 .\n\n ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrismorte%2Fdatabase-diagrams","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrismorte%2Fdatabase-diagrams","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrismorte%2Fdatabase-diagrams/lists"}