008_createMessagesTable.ts 967 B

12345678910111213141516171819202122232425
  1. import type { MigrationLiveDefinition } from '@d8d-appcontainer/types'
  2. const createMessagesTable: MigrationLiveDefinition = {
  3. name: "create_messages_table",
  4. up: async (api) => {
  5. await api.schema.createTable('messages', (table) => {
  6. table.increments('id').primary().comment('消息ID');
  7. table.string('title').notNullable().comment('消息标题');
  8. table.text('content').notNullable().comment('消息内容');
  9. table.enum('type', ['system', 'private', 'announce']).notNullable().comment('消息类型');
  10. table.integer('sender_id').unsigned().references('id').inTable('users').onDelete('SET NULL').comment('发送者ID');
  11. table.string('sender_name').comment('发送者名称');
  12. table.timestamps(true, true);
  13. // 添加索引
  14. table.index('type');
  15. table.index('sender_id');
  16. });
  17. },
  18. down: async (api) => {
  19. await api.schema.dropTable('messages');
  20. }
  21. }
  22. export default createMessagesTable;