Sequelize Postgres Utilities

2.0.2 · active · verified Wed Apr 22

sequelize-pg-utilities is an opinionated set of database utilities designed to simplify the configuration and connection process for PostgreSQL databases when used with Sequelize or the Sequelize CLI. It standardizes database configuration by integrating values from config files, environment variables, and sensible defaults, and also provides a mechanism for creating the database itself. The current stable version is 2.0.2, with recent updates focused on dependency upgrades and maintenance. The library differentiates itself by addressing the configuration discrepancies between Sequelize and the Sequelize CLI and offering built-in database creation capabilities, abstracting away common setup complexities for PostgreSQL users. Releases typically occur as needed for dependency updates, bug fixes, or significant API changes.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to use `sequelize-pg-utilities` to configure and connect to a PostgreSQL database with Sequelize, including handling environment variables and illustrating database creation.

const { configure } = require('sequelize-pg-utilities');
const { Sequelize } = require('sequelize'); // Assuming Sequelize is installed

// Mock a config/config.json structure
const appConfig = {
  development: {
    username: process.env.DB_USER ?? 'my-dev-user',
    password: process.env.DB_PASS ?? 'my-dev-password',
    database: process.env.DB_NAME ?? 'my-project-development'
  },
  test: { /* ... */ },
  production: { /* ... */ }
};

// To simulate different environments for quickstart
process.env.NODE_ENV = 'development'; 

async function initializeDatabase() {
  try {
    const { name, user, password, options, dbNew } = await configure(appConfig);

    console.log(`Database '${name}' initialized. New database created: ${dbNew}`);
    console.log(`Attempting to connect with user: ${user}`);

    const sequelize = new Sequelize(name, user, password, options);

    await sequelize.authenticate();
    console.log('Database connection has been established successfully.');
    
    // Example: Run a simple query
    const [results] = await sequelize.query('SELECT 1+1 AS solution');
    console.log('Query result:', results[0].solution);

    await sequelize.close();
    console.log('Database connection closed.');
  } catch (error) {
    console.error('Unable to connect to the database or an error occurred:', error);
    process.exit(1);
  }
}

initializeDatabase();

view raw JSON →