New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

sequelize-views-support

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sequelize-views-support

Adds VIEWS support to Sequelize.

  • 1.2.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
84
increased by23.53%
Maintainers
1
Weekly downloads
 
Created
Source

Add Views support to Sequelize

NPM version

This package adds support to Views in Sequelize.

NOTE: Currently it's only supported in PostgreSQL.

Motivation

I've been using PostgreSQL and other RDBMS for a long time, and I can't stress enough about how useful is the View mechanism. For that reason (and others that you'd get bored reading them) an ORM without Views support is incomplete.

This package needs a lot of further work, tests, discussion... but for the moment it works as expected and fulfills its purpose. Feel free of discuss changes, ideas, or whatever you think. Thanks.

Read

Install

npm install --save sequelize-views-support

How to use

First, when creating the sequelize instance, you have to do it using this package and not the Sequelize's:

sequelize.js:

const Sequelize = require('sequelize-views-support');

const sequelize = new Sequelize(
  // Use the same construction call you've been using so far
);

module.exports = sequelize;

Then, when creating your view models you have to set two more options (let's call this view Foo):

models/foo.js:

module.exports = (sequelize, DataTypes) => {
  const Foo = sequelize.define('foo', {
    field1: DataTypes.DATE,
    field2: DataTypes.STRING,
    // etc...
  }, {
    treatAsView: true,
    viewDefinition: `
      CREATE VIEW "foo" AS
        -- Put here your view's definition
        -- DO NOT USE "CREATE OR REPLACE", JUST "CREATE"
        -- You can create complex Views using any of the PostgreSQL DSL's supported features
    `
  });

  return Foo;
};

That's it. Now you can sync your models including views. Take into account that views will be created after syncing all your models. This is because your views may depend on models.

Migrations

The next step is to maintain your views. You're going to need to write migrations to change your views' definition, as well as changing it in the viewDefinition option.

You can ignore the viewDefinition option, but you won't be able to sync that view.

Mantainers

Keywords

FAQs

Package last updated on 25 Sep 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc