F2.2.1: crear baseline temporal del maestro importado
This commit is contained in:
@@ -0,0 +1,57 @@
|
|||||||
|
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.');
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user