58 lines
2.2 KiB
TypeScript
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.');
|
|
}
|
|
}
|