sequelize-typescript icon indicating copy to clipboard operation
sequelize-typescript copied to clipboard

How to define a materialized view in sequelize-typescript?

Open slidenerd opened this issue 2 years ago • 0 comments

Issue

How to define a materialized view in sequelize-typescript?

Versions

  • sequelize: 6.6.2
  • sequelize-typescript: 2.1.0
  • typescript: 4.1.3

Issue type

  • [ ] bug report
  • [x] feature request

Related code

Take the model definition below. It gets converted into a table by default. How do I turn this into a materialized view instead?

/* eslint import/no-cycle: "off" */
import {
  Model,
  PrimaryKey,
  Column,
  Table,
  Min,
  AllowNull,
  AutoIncrement,
  BelongsTo,
} from 'sequelize-typescript';
import { FeedItem } from 'data/models';
 
@Table({
  freezeTableName: true,
})
export default class FeedItemLikesDislikesAggregate extends Model {
  @PrimaryKey
  @AutoIncrement
  @Column
  feedItemLikesDislikesAggregateId: number;
 
  @AllowNull(false)
  @Min(0)
  @Column
  dislikes: number;
 
  @AllowNull(false)
  @Min(0)
  @Column
  likes: number;
 
  @BelongsTo(() => FeedItem, {
    foreignKey: { name: 'feedItemId', allowNull: false },
    as: 'feedItemId_',
  })
  feedItemId: FeedItem;
}

slidenerd avatar Sep 13 '22 03:09 slidenerd