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