DenoGres 2.0 Unleashed

Introduction

Today we are releasing the next iteration of DenoGres, version 2.0. Version 2.0 comes with a significant number of improvements to core functionality which make DenoGres not only easier to use but also a more comprehensive ORM solution linking PostgreSQL to the Deno runtime.

  • Bi-directional synchronization of database/Model
  • Database seeding
  • A graphical query browser interface
  • Database migration logging

Bi-directional database synchronization

One core feature implemented as a part of version 2.0 is the addition of bidirectional database synchronization. Upon invoking the command ‘ — db-pull’, DenoGres will create a model.ts file. This file represents the user’s database schema from PostgreSQL in TypeScript object form. Any changes that occur within PostgreSQL can be pulled into the user’s project directory by invoking ‘ — db-pull’, which will overwrite the current model file in DenoGres. Another piece of functionality that lives within this feature is the ability to sync changes to the PostgreSQL database schema through the ORM model (model.ts) in DenoGres. If a user wants to make changes to their PostgreSQL schema down the line, they can do so within their own IDE by modifying their model.ts file and invoking the command ‘ — db-sync’. Invoking ‘ — db-sync’ will then use the model.ts as its base and synchronize the PostgreSQL database schema to match the Models from the model.ts file.

image of model.ts file
model.ts

Database Seeding

With our latest addition of database seeding, you can now insert test data into your PostgreSQL database directly through DenoGres! To get started, you’ll need to first create a file named seed.ts inside of the root directory. Next, create an array of objects, assigning it to a label matching the name of the table you want to create inside the PostgreSQL database. Within your newly created variable, each object within the array will represent a record (row) to be added to the PostgreSQL database.

code snippet showing an example of the seed.ts file.
Example: seed.ts model

GUI Query Browser

DenoGres Login Page
Adding a connection
Connecting to a saved connection
Defining and Saving a Query

Database Migration Logging

DenoGres 1.0 lacked the ability to track or store database migrations. If a user opted to change the shape of their model and later decided against it a week later, there’d be no way for them to go back to their previous schema. DenoGres 2.0 solves this issue.

Denogres Log Tracks All Migrations

Under Development

As support for DenoGres expands, the team hopes to implement the following changes with the next version of DenoGres:

  • Further support for dbSync — eventually account for multiple associations and composite unique keys within the DenoGres model.
  • New “Compare” command — display side-by-side differences between previous models (if any exist).
  • Further updates to migrations log — Log will be visible within the GUI so that users can track/view/compare model versions.
  • ERD-style diagrams — Will be generated within the GUI, so users can have a comprehensive view of their data model.
  • Additional support for MySQL, SQL Server, etc.

Documentation

To learn more about DenoGres visit https://denogres.deno.dev/

Contributors

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store