How to use sequelize-typescript - 10 common examples

To help you get started, we’ve selected a few sequelize-typescript examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github RiseVision / rise-node / packages / core-test-utils / src / utils / containerCreator.ts View on Github external
export const createContainer = (): Container => {
  const container = new Container();
  // Generics
  container.bind(Symbols.generic.appConfig)
    .toConstantValue(JSON.parse(JSON.stringify(require(`${__dirname}/../integration/config.json`))));
  container.bind(Symbols.generic.genesisBlock)
    .toConstantValue(JSON.parse(JSON.stringify(require(`${__dirname}/../integration/genesisBlock.json`))));
  const genesis              = container.get(Symbols.generic.genesisBlock)
  genesis.generatorPublicKey = Buffer.from(genesis.generatorPublicKey, 'hex');
  genesis.blockSignature     = Buffer.from(genesis.blockSignature, 'hex');

  container.bind(Symbols.generic.socketIO).to(SocketIOStub).inSingletonScope();
  container.bind(Symbols.generic.zschema).to(ZSchemaStub).inSingletonScope();
  container.bind(Symbols.generic.sequelize).toConstantValue(new Sequelize({
    database: 'test',
    //dialect: 'sqlite',
    dialect : 'postgres',
    username: 'root',
    password: 'test',
    //storage: ':memory',
    logging : !('SEQ_SILENT' in process.env),
  }));

  container.bind(Symbols.helpers.constants).toConstantValue({ ...{}, ...constants });
  container.bind(Symbols.helpers.bus).to(BusStub).inSingletonScope();
  container.bind(Symbols.helpers.crypto).to(CryptoStub).inSingletonScope();
  container.bind(Symbols.helpers.db).to(DbStub).inSingletonScope();
  container.bind(Symbols.helpers.migrator).to(MigratorStub).inSingletonScope();
  container.bind(Symbols.helpers.exceptionsManager).to(ExceptionsManagerStub).inSingletonScope();
  container.bind(Symbols.helpers.jobsQueue).to(JobsQueueStub).inSingletonScope();
github midwayjs / midway-examples / demo-sequelize-typescript / src / lib / model / post.ts View on Github external
{
    id: 'PostModel',
    provider: factory,
  },
]);
// you need to export the type of Model class to ensure
// type-safety outside
export type IPostModel = typeof PostModel;

@Scopes({
  // a self-defined scope means "non-soft-deleted rows"
  avaliable: {
    where: {status: 1},
  },
})
@Table({
  // you can claim your tableName explicitly
  freezeTableName: true,
  tableName: 'my_posts_table',
})
export class PostModel extends Model {

  @Column({
    type: BIGINT(20),
    primaryKey: true,
    autoIncrement: true,
    comment: 'post id',
  })
  id: number;

  @Column({
    type: STRING(1024),
github RiseVision / rise-node / src / models / MemRoundsModel.ts View on Github external
// tslint:disable
import { Column, DataType, ForeignKey, Model, PrimaryKey, Table } from 'sequelize-typescript';
import 'reflect-metadata';
import { publicKey } from '../types/sanityTypes';
import { BlocksModel } from './BlocksModel';
import { AccountsModel } from './AccountsModel';


@Table({ tableName: 'mem_rounds' })
export class MemRoundsModel extends Model {
  @PrimaryKey
  @ForeignKey(() => AccountsModel)
  @Column
  public address: string;

  @PrimaryKey
  @Column
  public amount: number;

  @PrimaryKey
  @Column(DataType.TEXT)
  public delegate: publicKey;

  @PrimaryKey
  @ForeignKey(() => BlocksModel)
github T-Systems-RUS / Portfolio / server / sequelize / sequelize.ts View on Github external
import {Sequelize} from 'sequelize-typescript';
import * as config from '../config/config.json';

// dynamic configuration depending on env
const env = process.env.NODE_ENV || 'development';
const sequelize = new Sequelize(config[env]);
sequelize.addModels([`${__dirname}/../models`]);

// Convert decimals from String to Number right away - mainly for PSS in number instead of string
Sequelize.postgres.DECIMAL.parse = value => parseFloat(value);

export default sequelize;
github adrien2p / nestjs-sequelize-jwt / migrate.ts View on Github external
let config;
switch (process.env.NODE_ENV) {
    case 'prod':
    case 'production':
        config = databaseConfig.production;
    case 'dev':
    case 'development':
        config = databaseConfig.development;
    case 'test':
        config = databaseConfig.test;
    default:
        config = databaseConfig.development;
}

const sequelize = new Sequelize(config);

const umzug = new Umzug({
    storage: 'sequelize',
    storageOptions: { sequelize },

    // see: https://github.com/sequelize/umzug/issues/17
    migrations: {
        params: [
            sequelize,
            sequelize.constructor, // DataTypes
            function() {
                throw new Error(
                    'Migration tried to use old style "done" callback. Please upgrade to "umzug" and return a promise instead.'
                );
            }
        ],
github oughtinc / mosaic / server / lib / models / notificationRequest.ts View on Github external
AllowNull,
  BelongsTo,
  Column,
  DataType,
  ForeignKey,
  Model,
  Table,
} from "sequelize-typescript";
import Experiment from "./experiment";
import User from "./user";
import getScheduler from "../scheduler";

@Table
export default class NotificationRequest extends Model {
  @ForeignKey(() => Experiment)
  @AllowNull(false)
  @Column(DataType.UUID)
  public experimentId: string;

  @BelongsTo(() => Experiment)
  public experiment: Experiment;

  @ForeignKey(() => User)
  @AllowNull(false)
  @Column(DataType.STRING)
  public userId: string;

  @BelongsTo(() => User)
  public user: User;

  public static async findAllWithWorkAvailable() {
    // Notification system disabled
github englercj / playground / server / src / models / Playground.ts View on Github external
*/
    @Column({
        type: DataType.CHAR(63),
        allowNull: false,
        defaultValue: () => nanoid(),
        unique: 'unique_slug',
        // unique: 'unique_slug_version',
    })
    slug: string;

    /**
     * The user-defined name of the playground.
     *
     */
    @Column({
        type: DataType.STRING(1023),
    })
    name: string;

    /**
     * The user-defined description of the playground.
     *
     */
    @Column({
        type: DataType.STRING(4095),
    })
    description: string;

    /**
     * The playground contents.
     *
     */
github T-Systems-RUS / Portfolio / server / models / Schedule.ts View on Github external
@BelongsTo(() => Employee)
    employee: Employee;

    // Role
    @ForeignKey(() => Role)
    @Column
    roleId: number;

    @BelongsTo(() => Role)
    role: Role;

    @CreatedAt
    @Column({
        type: DataType.DATE,
        defaultValue: DataType.NOW
    })
    createdAt: Date;

    @UpdatedAt
    @Column({
        type: DataType.DATE,
        defaultValue: DataType.NOW
    })
    updatedAt: Date;
}
github RiseVision / rise-node / packages / core-secondsignature / src / AccountsModelWith2ndSign.ts View on Github external
import {
  FilteredModelAttributes,
  IAccountsModel,
} from '@risevision/core-types';
import 'reflect-metadata';
import { BuildOptions } from 'sequelize';
import { Column, DataType, DefaultScope } from 'sequelize-typescript';

@DefaultScope(() => ({
  attributes: ['secondSignature', 'secondPublicKey', 'u_secondSignature'],
}))
export class AccountsModelWith2ndSign extends IAccountsModel {
  @Column
  public secondSignature: 0 | 1;
  @Column(DataType.BLOB)
  public secondPublicKey: Buffer;
  @Column
  // tslint:disable-next-line variable-name
  public u_secondSignature: 0 | 1;

  constructor(
    values?: FilteredModelAttributes,
    options?: BuildOptions
  ) {
    super(values, options);
  }
}
github RiseVision / rise-node / packages / core-blocks / src / models / BlocksModel.ts View on Github external
@Column
  public numberOfTransactions: number;

  @Column(DataType.BIGINT)
  public totalAmount: bigint;

  @Column(DataType.BIGINT)
  public totalFee: bigint;

  @Column(DataType.BIGINT)
  public reward: bigint;

  @Column
  public payloadLength: number;

  @Column(DataType.BLOB)
  public payloadHash: Buffer;

  @Column(DataType.BLOB)
  public generatorPublicKey: Buffer;

  @Column(DataType.BLOB)
  public blockSignature: Buffer;

  public transactions: ITransactionsModel[];

  // tslint:disable-next-line
  @HasMany(
    () =>
      this.BlocksModel.container.getNamed(
        ModelSymbols.model,
        Symbols.models.transactions