Skip to content

Instantly share code, notes, and snippets.

@leegilmorecode
Created July 25, 2025 11:27
Show Gist options
  • Save leegilmorecode/29ce9286b610a3c77e4dfa44fcc362f6 to your computer and use it in GitHub Desktop.
Save leegilmorecode/29ce9286b610a3c77e4dfa44fcc362f6 to your computer and use it in GitHub Desktop.
Caching Sequalize models
import { Order, initOrderModel } from '@models/order';
import { OrderEvent, initOrderEventModel } from '@models/order-event';
import { Product, initProductModel } from '@models/product';
import { Sequelize } from 'sequelize';
let initialized = false;
export async function initModels(sequelize: Sequelize) {
if (initialized) return;
initOrderModel(sequelize);
initProductModel(sequelize);
initOrderEventModel(sequelize);
// we define our relationships here
Order.hasMany(OrderEvent, {
foreignKey: 'orderId',
sourceKey: 'id',
as: 'events',
constraints: false,
});
OrderEvent.belongsTo(Order, {
foreignKey: 'orderId',
targetKey: 'id',
as: 'order',
constraints: false,
});
initialized = true;
}
export { Order, OrderEvent, Product };
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment