013_createZichanInfoTable.ts 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import type { MigrationLiveDefinition } from '@d8d-appcontainer/types'
  2. import { DeleteStatus } from "../../client/share/types.ts";
  3. import { IsSpare, DisabledStatus } from "../../client/share/monitorTypes.ts";
  4. // 定义资产表迁移
  5. const createZichanInfoTable: MigrationLiveDefinition = {
  6. name: "create_zichan_info_table",
  7. up: async (api) => {
  8. await api.schema.createTable('zichan_info', (table) => {
  9. table.increments('id').primary();
  10. table.string('asset_name').comment('资产名称');
  11. table.integer('device_category').unsigned().references('id').inTable('zichan_category').onDelete('CASCADE').comment('设备分类');
  12. table.integer('area').unsigned().references('id').inTable('zichan_area').onDelete('CASCADE').comment('归属区域');
  13. table.string('supplier').comment('供应商');
  14. table.string('use_address').comment('使用地址');
  15. table.string('operation_status').comment('运行情况');
  16. table.integer('is_audited').defaultTo(0).comment('是否审核 (0否 1是)');
  17. table.integer('audit_status').comment('审核状态');
  18. table.integer('asset_status').comment('资产状态');
  19. table.integer('stock_quantity').comment('入库数量');
  20. table.timestamp('warranty_time').comment('质保时间');
  21. table.string('brand').comment('品牌');
  22. table.integer('device_status').comment('设备状态');
  23. table.integer('network_status').comment('网络状态');
  24. table.integer('packet_loss').comment('丢包率');
  25. table.text('images').comment('图片');
  26. table.integer('is_spare').defaultTo(IsSpare.NO).comment('是否备件 (0否 1是)');
  27. table.integer('is_disabled').defaultTo(DisabledStatus.ENABLED).comment('是否被禁用 (0否 1是)');
  28. table.integer('is_deleted').defaultTo(DeleteStatus.NOT_DELETED).comment('是否被删除 (0否 1是)');
  29. table.decimal('longitude', 10, 6).comment('资产位置经度');
  30. table.decimal('latitude', 10, 6).comment('资产位置纬度');
  31. table.string('cpu').comment('CPU信息');
  32. table.string('memory').comment('内存信息');
  33. table.string('disk').comment('硬盘信息');
  34. table.timestamps(true, true);
  35. // 添加索引
  36. table.index('asset_name');
  37. table.index('device_category');
  38. table.index('device_status');
  39. table.index('area');
  40. table.index('network_status');
  41. table.index('is_deleted');
  42. table.index('is_disabled');
  43. });
  44. },
  45. down: async (api) => {
  46. await api.schema.dropTable('zichan_info');
  47. }
  48. };
  49. export default createZichanInfoTable;