增加 迁移回滚功能实现
This commit is contained in:
27
server/migrations/009_createUserMessagesTable.ts
Normal file
27
server/migrations/009_createUserMessagesTable.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import type { MigrationLiveDefinition } from '@d8d-appcontainer/types'
|
||||
import { DeleteStatus, MessageStatus } from "../../client/share/types.ts";
|
||||
|
||||
const createUserMessagesTable: MigrationLiveDefinition = {
|
||||
name: "create_user_messages_table",
|
||||
up: async (api) => {
|
||||
await api.schema.createTable('user_messages', (table) => {
|
||||
table.increments('id').primary().comment('关联ID');
|
||||
table.integer('user_id').unsigned().references('id').inTable('users').onDelete('CASCADE').comment('用户ID');
|
||||
table.integer('message_id').unsigned().references('id').inTable('messages').onDelete('CASCADE').comment('消息ID');
|
||||
table.integer('status').defaultTo(MessageStatus.UNREAD).comment('阅读状态(0=未读,1=已读)');
|
||||
table.integer('is_deleted').defaultTo(DeleteStatus.NOT_DELETED).comment('删除状态(0=未删除,1=已删除)');
|
||||
table.timestamp('read_at').nullable().comment('阅读时间');
|
||||
table.timestamps(true, true);
|
||||
|
||||
// 添加复合索引
|
||||
table.index(['user_id', 'status']);
|
||||
table.index(['user_id', 'is_deleted']);
|
||||
table.unique(['user_id', 'message_id']);
|
||||
});
|
||||
},
|
||||
down: async (api) => {
|
||||
await api.schema.dropTable('user_messages');
|
||||
}
|
||||
}
|
||||
|
||||
export default createUserMessagesTable;
|
||||
Reference in New Issue
Block a user