Files
dh-inspeccion-v2/api-v3/src/database/migrations/1789758000000-phase-f2-2-1-reference-baselines.ts
T

58 lines
2.2 KiB
TypeScript

import { MigrationInterface, QueryRunner } from 'typeorm';
export class PhaseF221ReferenceBaselines1789758000000 implements MigrationInterface {
name = 'PhaseF221ReferenceBaselines1789758000000';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
INSERT INTO asset_versions (
asset_id,version_number,change_type,changed_fields,snapshot,source
)
SELECT
asset.id,
1,
'BASELINE',
ARRAY['assetTypeId','parentId','operationalAreaId','operatorCompanyId','code','name','informationStatus','operationalStatus','dataOrigin','sourceName','sourceReference'],
jsonb_build_object(
'id',asset.id,
'assetTypeId',asset.asset_type_id,
'parentId',asset.parent_id,
'operationalAreaId',asset.operational_area_id,
'operatorCompanyId',asset.operator_company_id,
'code',asset.code,
'name',asset.name,
'commonName',asset.common_name,
'description',asset.description,
'informationStatus',asset.information_status,
'operationalStatus',asset.operational_status,
'dataOrigin',asset.data_origin,
'sourceName',asset.source_name,
'sourceReference',asset.source_reference,
'sourceNotes',asset.source_notes
),
'SYSTEM'
FROM assets asset
WHERE asset.data_origin='IMPORT'
AND asset.source_name='Tablas de yacimiento(1).xlsx'
AND NOT EXISTS (
SELECT 1 FROM asset_versions version
WHERE version.asset_id=asset.id AND version.version_number=1
)
`);
await queryRunner.query(`
UPDATE assets asset
SET current_version=GREATEST(asset.current_version,1),updated_at=CURRENT_TIMESTAMP
WHERE asset.data_origin='IMPORT'
AND asset.source_name='Tablas de yacimiento(1).xlsx'
AND EXISTS (
SELECT 1 FROM asset_versions version
WHERE version.asset_id=asset.id AND version.version_number=1
)
`);
}
public async down(): Promise<void> {
throw new Error('F2.2.1 no elimina baselines históricos del maestro importado. Restaurar backup PRE si fuera necesario.');
}
}