{"id":30290353,"url":"https://github.com/open-source-labs/denogres","last_synced_at":"2025-12-11T21:11:41.761Z","repository":{"id":45767005,"uuid":"512067660","full_name":"open-source-labs/DenoGres","owner":"open-source-labs","description":"Deno + PostgreSQL = DenoGres","archived":false,"fork":false,"pushed_at":"2023-07-20T06:39:25.000Z","size":68189,"stargazers_count":214,"open_issues_count":3,"forks_count":29,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-09-01T01:02:38.304Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/open-source-labs.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"open-source-labs","custom":["https://donorbox.org/donations-to-oslabs-inc"]}},"created_at":"2022-07-09T01:41:20.000Z","updated_at":"2025-08-13T20:15:01.000Z","dependencies_parsed_at":"2025-09-01T01:02:41.375Z","dependency_job_id":"ed56e61c-4aa2-4c52-a38f-292193364147","html_url":"https://github.com/open-source-labs/DenoGres","commit_stats":null,"previous_names":["oslabs-beta/denogres"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/open-source-labs/DenoGres","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FDenoGres","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FDenoGres/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FDenoGres/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FDenoGres/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-source-labs","download_url":"https://codeload.github.com/open-source-labs/DenoGres/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FDenoGres/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27670308,"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-12-11T02:00:11.302Z","response_time":56,"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":[],"created_at":"2025-08-16T23:12:48.839Z","updated_at":"2025-12-11T21:11:41.729Z","avatar_url":"https://github.com/open-source-labs.png","language":"TypeScript","funding_links":["https://github.com/sponsors/open-source-labs","https://donorbox.org/donations-to-oslabs-inc"],"categories":[],"sub_categories":[],"readme":"![](/public/DenoGresWide.png) Welcome to DenoGres! A new comprehensive ORM for\nPostgreSQL and Deno.\n\n## Getting Started\n\nTo begin, let's download DenoGres! Execute the below in the terminal - this will\ngive you access to DenoGres's CLI functionality.\n\n\u003e `deno install --allow-read --allow-write --allow-net --allow-env --allow-run --name denogres https://deno.land/x/denogres/mod.ts`\n\nAfter installation is complete, following the instructions in your terminal to\nensure DenoGres is added to PATH.\n\n## Quick Start\n\nBefore using DenoGres in a project, run the command below.\n\n\u003e `denogres --init`\n\nThis will create the following in your project's root directory:\n\n- .env file for your database connection URI\n- a models folder for your model.ts file\n- a Migrations folder for migration logs and model snapshots\n\nAfter running the init command, update the .env file to contain your database's\nconnection URI.\n\n\u003e `DATABASE_URI=driver://user:password@host:port/database_name`\n\nWith all the set-up steps complete, you're ready to introspect your database!\nDatabase introspection will automatically create TypeScript models of your\ndatabase tables in the .models/model.ts file.\n\n\u003e `denogres --db-pull`\n\n## Synchronizing your Database\n\nDenogres features bi-directional synchronization that is designed to ensure that\nyour database schema and your project Models in full alignment, maintaining a\nsingle, consistent source of truth.\n\nTo introspect and generate the associated models within the model.ts file,\nexecute the the following CLI command:\n\n\u003e `denogres --db-pull`\n\nIn addition to --db-pull, Denogres also includes --db-sync functionality that\nwill revise the PostgreSQL schema to reflect changes within the DenoGres\nmodel.ts file.\n\nOnce completed changes to your model have been made, execute the following CLI\ncommand:\n\n\u003e `denogres --db-sync`\n\n## Seeding Your Database\n\nDenoGres allows data to be populated to the PostgreSQL schema through data\nseeding. This is primarily useful during database design/development (i.e. an\napplication requires a certain amount of data to function properly) Create a\nseed.ts within the project root directory, and execute the following CLI\ncommand:\n\n\u003e `denogres --db-seed`\n\nThe associated database schema will be pre-populated based on the user's seed.ts\nfile.\n\n## Navigating the GUI\n\nDenoGres includes a GUI that allows the user to test and run queries utilizing\ngenerated Models and associated methods. Furthermore, users can save database\nconnections and previous queries to their accounts for later access.\n\nLaunch the DenoGres GUI by running the following CLI command:\n\n\u003e `denogres --gui`\n\n## Migration Logs and Restore\n\nAny time a user opts to make a request for --db-pull or --db-sync, Denogres\nmaintains a record of that request so that users can refer back to those\nhistorical records. Additionally, users can opt to restore the Model/database\nschema to prior iterations, in instances where users would like to roll\nback/forward changes that have been made.\n\nTo see a historical list of migration logs, execute the following CLI command:\n\n\u003e `denogres --log`\n\nTo restore Models to a prior version, execute the following CLI command:\n\n\u003e `denogres --restore [PREVIOUS_MODEL_FOLDER]`\n\n## Testing\n\nFor develpers interested in contributing, to run all tests, use the command:\n\n\u003e `deno task test`\n\n\u003ci\u003eNote\u003c/i\u003e: integration tests will require environment variable `ENVIRONMENT`\nset to `test` as well as a `TEST_DB_URI`.\n\n## Under Development\n\nDenoGres is continually evolving. Features currently in development include:\n\n- Database sync method (`denogres --db-sync`) will account for multiple\n  associations and composite unique keys.\n- \"Compare\" command (`denogres --compare`) will be implemented to display\n  side-by-side diff between previous models.\n- A setter method will be appended to a model when an association is established\n  with another model.\n- The manyToMany function will create a new join table.\n- Migrations log will be visible within the GUI, so that users can\n  track/view/compare model versions.\n- Two-way ERD that allows users to change relational data that is then reflected\n  onto their actual database\n- Additional support for MySQL, SQL Server, etc.\n- A Diagram page will offer a live ERD to visualize the user's database (see\n  preview below)\n\n![](/denogres-gui/src/assets/ReactFlow.gif)\n\n## Documentation\n\nMore information on how to use DenoGres and leverage all its wonderful\nabstraction functionality can be found here: https://denogres.deno.dev/\n\n## Contributors\n\n### Version 4.0\n\n- Rachel Cheman | [GitHub](https://github.com/rcheman) |\n  [LinkedIn](https://www.linkedin.com/in/rachel-cheman/)\n- Mia Gussen | [GitHub](https://github.com/mjpg1) |\n  [LinkedIn](https://www.linkedin.com/in/mia-gussen/)\n- Alexander Lin | [GitHub](https://github.com/alexanderlin) |\n  [LinkedIn](https://www.linkedin.com/in/alexander-lin-8aab79167/)\n- Jacob Martin | [GitHub](https://github.com/Solit95) |\n  [LinkedIn](https://www.linkedin.com/in/jmartin417)\n\n### Version 3.0\n\n- Azal Adeel | [GitHub](https://github.com/azaladeel) |\n  [LinkedIn](https://www.linkedin.com/in/azal-adeel/)\n- Joe Hynan | [GitHub](https://github.com/JoeH1020) |\n  [LinkedIn](https://www.linkedin.com/in/josephhynan/)\n- James Howat | [GitHub](https://github.com/jbhowat) |\n  [LinkedIn](https://www.linkedin.com/in/jamesbhowat/)\n- Hao Ze Lin| [GitHub](https://github.com/LinHAO-1) |\n  [LinkedIn](https://www.linkedin.com/in/linhaoze/)\n\n### Version 2.0\n\n- Anthony Lo | [GitHub](https://github.com/anthonylo87) |\n  [LinkedIn](https://linkedin.com/in/87anthonylo/)\n- Henry Park | [GitHub](https://github.com/CodeDenma) |\n  [LinkedIn](https://linkedin.com/in/henrytpark/)\n- Carlos Villarreal | [GitHub](https://github.com/Jiggyloww) |\n  [LinkedIn](https://linkedin.com/in/carlosvillarrealsb)\n- Eddie Wu | [GitHub](https://github.com/edi-wu) |\n  [LinkedIn](https://linkedin.com/in/edi-wu)\n\n### Version 1.0\n\n- Ben Engelberg | [GitHub](https://github.com/bengelberg) |\n  [LinkedIn](https://linkedin.com/in/benengelberg)\n- Moonhee Hur | [GitHub](https://github.com/mhurcs) |\n  [LinkedIn](https://linkedin.com/in/moonheehur)\n- Tesia Hwang | [GitHub](https://github.com/tesiahwang) |\n  [LinkedIn](https://linkedin.com/in/tesia-hwang)\n- Kristen Lu | [GitHub](https://github.com/kristenlu24) |\n  [LinkedIn](https://linkedin.com/in/kristen-lu)\n- Allison Roderiques | [GitHub](https://github.com/allirod) |\n  [LinkedIn](https://linkedin.com/in/allison-roderiques)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-source-labs%2Fdenogres","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-source-labs%2Fdenogres","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-source-labs%2Fdenogres/lists"}