018_createRackInfoTable.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import type { MigrationLiveDefinition } from '@d8d-appcontainer/types'
  2. import { DeleteStatus , EnableStatus} from "../../client/share/types.ts";
  3. // 机柜信息表迁移
  4. const createRackInfoTable: MigrationLiveDefinition = {
  5. name: "create_rack_info_table",
  6. up: async (api) => {
  7. await api.schema.createTable('rack_info', (table) => {
  8. table.increments('id').primary();
  9. table.string('rack_name').comment('机柜名称');
  10. table.string('rack_code').unique().comment('机柜编号');
  11. table.integer('capacity').defaultTo(42).comment('机柜可容纳设备数量,默认42U');
  12. table.decimal('position_x', 10, 6).comment('机柜X轴位置坐标');
  13. table.decimal('position_y', 10, 6).comment('机柜Y轴位置坐标');
  14. table.decimal('position_z', 10, 6).comment('机柜Z轴位置坐标');
  15. table.string('area').comment('机柜所在区域');
  16. table.string('room').comment('机柜所在机房');
  17. table.text('remark').comment('备注信息');
  18. table.integer('is_disabled').defaultTo(EnableStatus.ENABLED).comment('是否禁用 (0否 1是)');
  19. table.integer('is_deleted').defaultTo(DeleteStatus.NOT_DELETED).comment('是否被删除 (0否 1是)');
  20. table.timestamps(true, true);
  21. // 添加索引
  22. table.index('rack_name');
  23. table.index('rack_code');
  24. table.index('area');
  25. table.index('room');
  26. table.index('is_disabled');
  27. table.index('is_deleted');
  28. });
  29. },
  30. down: async (api) => {
  31. await api.schema.dropTable('rack_info');
  32. }
  33. };
  34. export default createRackInfoTable