| 1234567891011121314151617181920212223242526272829303132333435363738 |
- import type { MigrationLiveDefinition } from '@d8d-appcontainer/types'
- import { DeleteStatus , EnableStatus} from "../../client/share/types.ts";
- // 机柜服务器表迁移
- const createRackServerTable: MigrationLiveDefinition = {
- name: "create_rack_server_table",
- up: async (api) => {
- await api.schema.createTable('rack_server', (table) => {
- table.increments('id').primary();
- table.integer('rack_id').unsigned().notNullable().comment('关联的机柜ID')
- .references('id').inTable('rack_info').onDelete('CASCADE');
- table.integer('asset_id').unsigned().notNullable().comment('关联的资产ID')
- .references('id').inTable('zichan_info').onDelete('CASCADE');
- table.integer('start_position').notNullable().comment('设备安装的起始U位');
- table.integer('size').defaultTo(1).comment('设备占用U数');
- table.integer('server_type').unsigned().references('id').inTable('rack_server_type').onDelete('CASCADE').comment('服务器类型');
- table.text('remark').comment('备注信息');
- table.integer('is_disabled').defaultTo(EnableStatus.ENABLED).comment('是否禁用 (0否 1是)');
- table.integer('is_deleted').defaultTo(DeleteStatus.NOT_DELETED).comment('是否被删除 (0否 1是)');
- table.timestamps(true, true);
-
- // 添加索引
- table.index('rack_id');
- table.index('asset_id');
- table.index('server_type');
- table.index('is_disabled');
- table.index('is_deleted');
-
- // 添加唯一约束,一个资产只能放在一个机柜位置
- // table.unique(['rack_id', 'asset_id']);
- });
- },
- down: async (api) => {
- await api.schema.dropTable('rack_server');
- }
- };
- export default createRackServerTable
|