{"id":34008720,"url":"https://github.com/israeldavidvm/database-knowledgeable","last_synced_at":"2026-04-01T23:01:45.058Z","repository":{"id":273448344,"uuid":"919751219","full_name":"israeldavidvm/database-knowledgeable","owner":"israeldavidvm","description":"Database-KNOWLEDGEABLE allows you to obtain basic infomction of your database, generate reports and documentation in popular formats such as Markdown and Mermaid. More specifically","archived":false,"fork":false,"pushed_at":"2025-02-11T17:51:43.000Z","size":351,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-28T00:42:35.567Z","etag":null,"topics":["backend","database"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/israeldavidvm.png","metadata":{"files":{"readme":"README-EN.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-21T00:09:04.000Z","updated_at":"2025-02-11T17:51:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"c305efa0-2f42-48c3-9e26-1da6fdabe79b","html_url":"https://github.com/israeldavidvm/database-knowledgeable","commit_stats":null,"previous_names":["israeldavidvm/database-knowledgeable"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/israeldavidvm/database-knowledgeable","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/israeldavidvm%2Fdatabase-knowledgeable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/israeldavidvm%2Fdatabase-knowledgeable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/israeldavidvm%2Fdatabase-knowledgeable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/israeldavidvm%2Fdatabase-knowledgeable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/israeldavidvm","download_url":"https://codeload.github.com/israeldavidvm/database-knowledgeable/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/israeldavidvm%2Fdatabase-knowledgeable/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"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":["backend","database"],"created_at":"2025-12-13T11:45:12.391Z","updated_at":"2026-04-01T23:01:45.049Z","avatar_url":"https://github.com/israeldavidvm.png","language":"PHP","funding_links":["https://ko-fi.com/israeldavidvm","https://paypal.me/israeldavidvm"],"categories":[],"sub_categories":[],"readme":"\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*\n\n- [Database Knowledgeable](#database-knowledgeable)\n  - [License](#license)\n  - [Characteristics What does it offer?](#characteristics-what-does-it-offer)\n  - [features to implement / characteristics to be implemented](#features-to-implement--characteristics-to-be-implemented)\n  - [Planning, Requirements Engineering and Risk Management / Planning, Requirements Engineering and Risk Management](#planning-requirements-engineering-and-risk-management--planning-requirements-engineering-and-risk-management)\n  - [Design Software / Software Design](#design-software--software-design)\n    - [Structural perspective](#structural-perspective)\n      - [Logica view of software architecture](#logica-view-of-software-architecture)\n    - [Behavior perspective](#behavior-perspective)\n  - [Documentation](#documentation)\n    - [Conventions used during documentation](#conventions-used-during-documentation)\n    - [Support and limiting algorithms](#support-and-limiting-algorithms)\n      - [Algorithms used to determine PK, FK and other attributes](#algorithms-used-to-determine-pk-fk-and-other-attributes)\n        - [Name conventions used for the identification of elements](#name-conventions-used-for-the-identification-of-elements)\n          - [Primary keys](#primary-keys)\n          - [Examples](#examples)\n          - [Foraneal keys](#foraneal-keys)\n          - [Examples](#examples-1)\n    - [Use](#use)\n      - [Requirements](#requirements)\n        - [Facility](#facility)\n          - [as a user](#as-a-user)\n          - [as a library (only if you want to create a program that uses library)](#as-a-library-only-if-you-want-to-create-a-program-that-uses-library)\n        - [File .env](#file-env)\n      - [use from the command line interface](#use-from-the-command-line-interface)\n        - [If it is included in a project by required with the global (composer global requires Israeldavidvm/Database-KNowledgeable)](#if-it-is-included-in-a-project-by-required-with-the-global-composer-global-requires-israeldavidvmdatabase-knowledgeable)\n        - [If it is included in a project through require without the Global](#if-it-is-included-in-a-project-through-require-without-the-global)\n        - [If it is installed by installing or starts from the project root (composer install israeldavidvm/database-knowledgeable)](#if-it-is-installed-by-installing-or-starts-from-the-project-root-composer-install-israeldavidvmdatabase-knowledgeable)\n      - [use as library](#use-as-library)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n\u003c!-Start doctoc generated touch please keep comment here to allow Auto Update-\u003e\n\u003c!-Don's Edit This Section, Instead Re-Run Doctor to Update-\u003e\n** Table of content ***generated with [doctoc] (https://github.com/thlorenz/doctoc)*\n\n- [Database Knowledgeable] (#databaseknowledageable)\n- [License] (#license)\n-[CHARACTERISTICS WHAT OFFER YOU?] (#CHARACTERISTICS-%C2%BFQU%C3%A9-TE-DEFREE)\n-[features to implement / characteristics to be implemented] (#features-to-implement-caracteristic-to-implement)\n-[Planning, Requirements Engineering and Risk Management / Planning, Requirements Engineering and Risk Management] (#Planning-Requirements-Engineering-And-Risk-Management-Planning-Ingenieria-De-Requerlations-Y-Gestion-Del-Riesgo )\n-[Software Design / Software Design] (#Software-Design-Dise%C3%B1O-De-Software)\n- [Structural Perspective] (#perspective-structural)\n-[Logic view of software architecture] (#-logic-of-the-architecture-del-software)\n-[behavior perspective] (#perspective-of-behavior)\n- [Documentation] (#Documentation)\n-[Conventions used during documentation] (#Conventions-Useas-During-Documentation)\n-[Support and limiting algorithms] (#support-and-limiting-of-the-algorithms)\n-[Algorithms used to determine PK, FK and other attributes] (#algorithmos-uded-for-end-pk-fk-and-demributes)\n-[Name conventions used for the identification of elements] (#conventions-of-numbers-for-for-identification-of-element)\n- [Primary keys] (#Keys-First)\n- [Examples] (#examples)\n- [Foraneal Keys] (#Key-Foreropes)\n- [Examples] (#examples-1)\n- [Use] (#use)\n- [Requirements] (#requirements)\n- [Installation] (#installation)\n- [as a user] (#as-user)\n-[As a library (only if you want to create a program that uses library)] (#as-biblioteca-only-si-want-you-with-a-program-which-your-libreria)\n- [.env] (#file-env)\n-[Use from the command line interface] (#use-from-the-interfaz-of-line-de-compos)\n-[Use as a library] (#use-as-libreria)\n- [Make to Donation. Your Contribution Will Make A Difference.] (#Make-A-Donation-Your-Contribution-Will-Make-A-Difference)\n-[Find me on:] (#Find-me-on)\n-[Technologies used / used technologies] (#Technologies-ined-Tecnologias-Usadas)\n\n\u003c!-End doctoc generated touch please keep comment here to allow Auto Update-\u003e\n\n\n# Database Knowledgeable\n\n[Readme version in English] (./ Readme-en.md)\n\nDatabase-KNOWLEDGEABLE allows you to obtain basic infomction of your database, generate reports and documentation in popular formats such as Markdown and Mermaid. More specifically\n\n! [alt text] (image.png)\n\n## License\n\nThis Code is licensed under the general public license of GNU version 3.0 or posterior (LGPLV3+). You can find a complete copy of the license at https://www.gnu.org/licenses/lgPl-3.0-standalone.htmlalone.html0-standalone.html\n\n## Characteristics What does it offer?\n\nDatabase-KNOWLEDGEABLE allows you to obtain basic infomction of your database, generate reports and documentation in popular formats such as Markdown and Mermaid. More specifically\n\n- It generates a Markdown report where each table of your database is stated, next to a Mermaid diagram, a brief explanation of the table, its fields, etc.\n\n- PostgreSql is only supported\n\n- Command line interface to access the functions of the library\n\n## features to implement / characteristics to be implemented\n\n- Generation of diagrams entity relationship\n\n- Generation of the relational model\n\n- Support to more database managers systems\n## Planning, Requirements Engineering and Risk Management / Planning, Requirements Engineering and Risk Management\n\nThese sections of the project will be carried out through a site in Notion so that they can be easily accessible by non -technical staff.\n\nRequest access link to authorized personnel\n\n## Design Software / Software Design\n\n### Structural perspective\n\n#### Logica view of software architecture\n\n### Behavior perspective\n\n## Documentation\n\n### Conventions used during documentation\n\nNotation conventions for grammar:\n\n\u003c\u003e Are used to surround a non -terminal symbol\n\nThe :: = Used for production rules\n\nNon -terminal symbols are expressed as a normal chain or characters\n\nThe following group of symbolic pairs, should be used together with expressions as follows: the first in each couple is written as suffix after the expression and the second surrounds the expression.\n\nHe ? or [] indicate that the expression is optional\n\nThe * or {} indicates that the expression is repeated or more times\n\nThe + indicates that the expression is repeated 1 or more times\n\nIf you want to use one of the previous characters, it must be preceded \\ with\n\n### Support and limiting algorithms\n\nUnfortunately some SGBD support SQL standards differently so there is no universal algorithm that works perfectly for all SGBD.\n\nWe hope in the future to change this but currently only use it as a personal tool and I lack the time resources to add these characteristics, only proven support will be provided to PostgreSql\n\n#### Algorithms used to determine PK, FK and other attributes\n\nAlthough the set of information_schema views could be used to determine some of the database structures\n\nIt was discovered that in PostgreSql joins additives, so names of names by speed were usually used. We hope to improve this characteristic in the future.\n\nExample of Join Additive Failure\n\nFor example, if you would like to know if a column in the information_schema.Key_column_usage is a primary key, foreign key, etc., the query should be used\n\n`` sql\nSelect Kcc.Column_name, Kcc.\nFrom\nInformation_schema.able_constraints TC\nJoin\nINFORMATION_SCHEMA.KEY_COLUMN_USAGE KC\nOn Tc.constraint_name = kcu.constraint_name\n``\nHowever, if we carefully observe these results, they are affected by an additive Join\n\nFor the particular case of having\n`` sql\nSelect column_name, table_name from information_schema.Key_column_usage where table_name ~ '^insight_taxonomy $'\n``\n\nthat shows results in this way\n\n! [Information_schema.Key_column_usage_where_name_insight_taxonomy] (images/key_column_usage_where_nable_name_insight_taxonomy.png)\n\nand a\n`` sql\nSelect TC.Constraint_name\nFrom\nInformation_schema.able_constraints TC\nWHERE\ntc.constraint_name ~ '^taxonomy_id_fkey $'\n``\nthat shows results in this way\n\n! [Table_constraints_where_taxonomy_id_fkey] (images/table_constraints_where_taxonomy_id_fkey.png)\n\nYou have to\n\n`` sql\nSelect Kcc.Column_name, Kcc.\nFrom\nInformation_schema.able_constraints TC\nJoin\nINFORMATION_SCHEMA.KEY_COLUMN_USAGE KC\nOn Tc.constraint_name = kcu.constraint_name\nWHERE\nKcc.able_name ~ '^insight_taxonomy $'\n\n``\n\ngenerates the following results that reflect the join additive\n\n! [Adivivoin.png] (images/adionntivejoin.png)\n\n##### Name conventions used for the identification of elements\n\n###### Primary keys\nAll ID name attribute\n\n###### Examples\nid\n\n###### Foraneal keys\nAny attribute that has the following way\n``\n\u003cTabllasigular name\u003e [_ \u003cbol\u003e] _ id\n\nWhere [role] serves to identify the entity in recursive relationships\n\n``\n\nCoincides with the following regular expression\n``\n^[a-za-z0-9ñ]+(?: _ [a-za-z0-9ñ]+)? _ Id $\n``\n###### Examples\n- User_id\n- Taxonomy_child_id\n- Taxonomy_Parent_id\n\n### Use\n\n#### Requirements\n\n##### Facility\n\n###### as a user\n\nComposer Install Israeldavidvm/Database-KnowLedageable\n\nGlobal composer requires Israeldavidvm/Database-KnowLedageable\n\nComposer requires Israeldavidvm/Database-KnowLedageable\n\n\n###### as a library (only if you want to create a program that uses library)\nComposer requires Israeldavidvm/Database-KnowLedageable\n\n##### File .env\n\nEstablish a configuration in the .env file. Like the next\n\n``\n\nDB_connection = PGSQL\nDb_host = 127.0.0.1\nDB_Port = 5432\nDb_database = \u003cdatabasename\u003e\nDb_usename = \u003csuername\u003e\nDB_Password = \u003cpassword\u003e\n\n``\n\n#### use from the command line interface\n\n##### If it is included in a project by required with the global (composer global requires Israeldavidvm/Database-KNowledgeable)\n\nIn order to use the program you will only need an .EV file with the configuration of your database as specified above and execute the command\n\n\n`` ~/.config/composer/vendor/bin/database-knowLedageable app: generateMarkDowndocumentation [\u003cpeph\u003e [\u003cPath\u003e]] `` `` `` `` `` ``\n\nArguments:\nDepth depth [default: 1]\nPath the route to the .env file. [default: \"./.env\"]\n\nOptions:\n-H, -Help Display Help for the Given Command. WHEN NO COMMAND IS GIVEN DISPLAY HELP FOR THE LIST COMMAND\n-Silent do not output any message\n-q, --quie Only Error Displayed. All other output is support\n-V, -Version Display This Application Version\n`` Ansi | --No-Ansi Force (OR DISABLE --No-Ansi) ANSI OUTPUT\n-N, --No-Interaction do not ask any interactive question\n-V | VV | VVV, -Verbose Increase The Verbosity of Messages: 1 For Normal Output, 2 For More Verbose Output and 3 for Debug\n\n##### If it is included in a project through require without the Global\n\nIn order to use the program you will only need an .EV file with the configuration of your database as specified above and execute the command\n\n\n`'.\n\nArguments:\nDepth depth [default: 1]\nPath the route to the .env file. [default: \"./.env\"]\n\nOptions:\n-H, -Help Display Help for the Given Command. WHEN NO COMMAND IS GIVEN DISPLAY HELP FOR THE LIST COMMAND\n-Silent do not output any message\n-q, --quie Only Error Displayed. All other output is support\n-V, -Version Display This Application Version\n`` Ansi | --No-Ansi Force (OR DISABLE --No-Ansi) ANSI OUTPUT\n-N, --No-Interaction do not ask any interactive question\n-V | VV | VVV, -Verbose Increase The Verbosity of Messages: 1 For Normal Output, 2 For More Verbose Output and 3 for Debug\n\n##### If it is installed by installing or starts from the project root (composer install israeldavidvm/database-knowledgeable)\n\nIn order to use the program you will only need an .EV file with the configuration of your database as specified above and execute the command\n\n\n`` Composer Generakdowndocumentation [\u003cpeph\u003e [\u003cPath\u003e]] `` ``\n\nArguments:\nDepth depth [default: 1]\nPath the route to the .env file. [default: \"./.env\"]\n\nOptions:\n-H, -Help Display Help for the Given Command. WHEN NO COMMAND IS GIVEN DISPLAY HELP FOR THE LIST COMMAND\n-Silent do not output any message\n-q, --quie Only Error Displayed. All other output is support\n-V, -Version Display This Application Version\n`` Ansi | --No-Ansi Force (OR DISABLE --No-Ansi) ANSI OUTPUT\n-N, --No-Interaction do not ask any interactive question\n-V | VV | VVV, -Verbose Increase The Verbosity of Messages: 1 For Normal Output, 2 For More Verbose Output and 3 for Debug\n\n\n#### use as library\n\nIn any pHP file it calls the library as follows\n\n``\n\n\u003c? PHP\n\nInclude __dir __. \"/vendor/Autoload.php\";\n\nUse Israeldavidvm \\ DatabaseknowLedgeable \\ Databaseknowledgeable;\n\n$ metainfoenvfile = [\n'Pathenvfolder' =\u003e '.',\n'name' =\u003e '.\n'mode' =\u003e 'exclude',\n'Tables' =\u003e [],\n];\n\n$ databaseknowledgeable = new databaseknowledgeable ($ metainfoenvfile);\n\n$ databaseknowledgeable-\u003e generateMarkDowndocumentation ($ depth);\n\n``\n\nExit table example\n\n! [alt text] (image.png)\n\n### Make to Donation. Your Contribution Will Make to Difference.\n[! [ko-fi] (https://ko-fi.com/img/githubutton_sm.svg)] (https://ko-fi.com/israeldavidvm)\n[! [PayPal] (https://img.shields.io/badge/paypal-@israeldavidvm-0077b5?style=for-the-badge\u0026ogo=paypal\u0026logocolor=white\u0026labelColor=101010)] (https://paypal.me/israeldavidvm )\n[! [Binance] (https://img.shields.io/badge/binance_id-809179020-1010 ?style=for Activity/Referral-Entry/CPa? Ref = CPA_004ZGH9EIS)\n\n### Find me on:\n[! [Github] (https://img.shields.io/badge/github-israeldavidvm-gray?\n[! [LinkedIn] (https://img.shields.io/badge/linkedIn-israeldavidvm-0077b5?style=for-the-badge\u0026ogo=LinkedI in/Israeldavidvm/)\n[! [Twitter] (https://img.shields.io/badge/twitter-@israeldavidvm-1da1f2?style=FOR-the-badge\u0026ogo=twitter\u0026logocolor=white\u0026labelColor=101010)] (https://twitter.com/israeldavidvm )\n[! [Facebook] (https://img.shields.io/badge/facebook-israeldavidvm-1877f2? Israeldavidvm)\n[! [Instagram] (https://img.shields.io/badge/instagram-@israeldavidvmv-gray?style=for-the-badge\u0026ogo=instagram\u0026logocolor=White\u0026labelColor=101010)] (https://www.instagram.com /Israeldavidvm/)\n[! [Tiktok] (https://img.shields.io/badge/tiktok-@israeldavidvm-e4405f?style=FOR-the-badge\u0026ogo=tiktok\u0026logocolor=white\u0026labelColor=101010)] (https://www.tiktok.com /@Israeldavidvm)\n[! [YouTube] (https://img.shields.io/badge/youtube-@israeldavidvm-ff0000?style=FOR-the-badge\u0026ogo=youtube\u0026logocolor=white\u0026labelcolor=101010)] (https://www.youtube.com /Channel/UCMZLFPENPDWPJOHAL0WRY7A)\n\n## Technologies used / used technologies\n\n[! [PHP] (https://img.shields.io/badge/php-blue?ogo=php\u0026style=for\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisraeldavidvm%2Fdatabase-knowledgeable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisraeldavidvm%2Fdatabase-knowledgeable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisraeldavidvm%2Fdatabase-knowledgeable/lists"}