From b6b300f7fc4a8eb0aa9465d842670c77189e0de5 Mon Sep 17 00:00:00 2001 From: Ahmad Nurul Laiq Date: Thu, 18 Apr 2024 09:34:53 +0700 Subject: [PATCH] chore: sequelize migration --- migrations/20240418022931-create-category.js | 33 ++++++++++++++++++++ models/category.js | 24 ++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 migrations/20240418022931-create-category.js create mode 100644 models/category.js diff --git a/migrations/20240418022931-create-category.js b/migrations/20240418022931-create-category.js new file mode 100644 index 0000000..70a0616 --- /dev/null +++ b/migrations/20240418022931-create-category.js @@ -0,0 +1,33 @@ +'use strict'; +/** @type {import('sequelize-cli').Migration} */ +module.exports = { + async up(queryInterface, Sequelize) { + await queryInterface.createTable('Categories', { + id: { + allowNull: false, + autoIncrement: true, + primaryKey: true, + type: Sequelize.INTEGER + }, + name: { + type: Sequelize.STRING, + allowNull: false, + unique: true + }, + description: { + type: Sequelize.TEXT + }, + createdAt: { + allowNull: false, + type: Sequelize.DATE + }, + updatedAt: { + allowNull: false, + type: Sequelize.DATE + } + }); + }, + async down(queryInterface, Sequelize) { + await queryInterface.dropTable('Categories'); + } +}; \ No newline at end of file diff --git a/models/category.js b/models/category.js new file mode 100644 index 0000000..34ad3ab --- /dev/null +++ b/models/category.js @@ -0,0 +1,24 @@ +'use strict'; +const { + Model +} = require('sequelize'); +module.exports = (sequelize, DataTypes) => { + class Category extends Model { + /** + * Helper method for defining associations. + * This method is not a part of Sequelize lifecycle. + * The `models/index` file will call this method automatically. + */ + static associate(models) { + // define association here + } + } + Category.init({ + name: DataTypes.STRING, + description: DataTypes.TEXT + }, { + sequelize, + modelName: 'Category', + }); + return Category; +}; \ No newline at end of file