Files
pp-tcms/backend/migrations/20260131000000-create-comments.js
2026-02-23 12:26:07 +09:00

48 lines
1.0 KiB
JavaScript

export async function up(queryInterface, Sequelize) {
await queryInterface.createTable('comments', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
},
commentableType: {
type: Sequelize.STRING,
allowNull: false,
},
commentableId: {
type: Sequelize.INTEGER,
allowNull: false,
},
userId: {
type: Sequelize.INTEGER,
references: {
model: 'users',
key: 'id',
},
onUpdate: 'CASCADE',
onDelete: 'SET NULL',
},
content: {
type: Sequelize.TEXT,
allowNull: false,
},
createdAt: {
type: Sequelize.DATE,
allowNull: false,
},
updatedAt: {
type: Sequelize.DATE,
allowNull: false,
},
});
// Add composite index for efficient polymorphic queries
await queryInterface.addIndex('comments', ['commentableType', 'commentableId'], {
name: 'comments_commentable_index',
});
}
export async function down(queryInterface) {
await queryInterface.dropTable('comments');
}