Files
roafacturare/docs/handoff_idempotenta_id_set.md
2026-09-17 17:24:55 +03:00

4.4 KiB

Handoff — idempotenta script 03 + ColumnNeedModify (2026-09-17, ~15:00)

Stare pentru sesiunea urmatoare. Nimic in stare periculoasa pe disc. Fisierele necomise sunt listate la pct. 4.

1. Livrabile terminate

Ce Unde Stare
Script 03 idempotent D:\ROA\DATABASE\SCRIPTURI_CLAR\2026\09\ff_2026_09_17_03_COMUN_ID_SET_UNIC.sql editat in loc, PUBLICAT (UPD_DATABASE id 17609 reactualizat)
Script 04 nou (PACK_MIGRARE + functia ColumnNeedModify) D:\ROA\DATABASE\SCRIPTURI_CLAR\2026\09\ff_2026_09_17_04_COMUN_PACK_MIGRARE.sql nou, PUBLICAT (id 17610)
Arhiva lunara Y:\ROAUPDATE\_UPDATE\ regenerata (30 scripturi), verificata octet cu octet

Ambele scripturi: ASCII (0 octeti > 127), CRLF, fara BOM, se termina cu UpdateVersiune + commit;.

2. Ce face scriptul 03 (acum idempotent)

  • alter table ... modify (id_set number(10)) era direct; acum e in declare cu guard: pack_migrare.ColumnExist(...) = 1 AND data_type='NUMBER' AND data_precision < 10. Pe dev coloanele sunt deja NUMBER(10) (data_precision=10), deci guard-ul sare corect.
  • Trigger-ul e create or replace (idempotent); renumerotarea where id_set < 1000000 e no-op la a doua rulare.

3. Ce face scriptul 04 (noua functie)

PACK_MIGRARE.ColumnNeedModify(tcTableName, tcColumnName, tcDataType, tnPrecision, tnScale, tcNullable): intoarce 1 daca coloana NU are definitia ceruta (trebuie ALTER MODIFY), 0 altfel. Orice parametru NULL = aspectul nu se verifica.

Pachetul complet a fost reprodus din DB-ul live (are ramura when 'RF' THEN din UpdateVersiune, pe care .pck-ul stale o pierduse) + functia noua. Baza: scriptul 2014 ff_2014_08_18_01_COMUN_PACK_MIGRARE.sql == DB live (verificat cu diff).

4. APROBAT dar NEEXECUTAT (Marius a aprobat in sesiune)

  1. A: in COMUN\skills\roa-oracle-migration\SKILL.md — inlocuieste criteriul CRLF buguit ($b -join ',').Contains('13,10') (fals pozitiv: byte 113='q' + 10 => "113,10" contine "13,10") cu regex-ul (?<!\r)\n (acelasi pe care-l foloseste publicare_scripturi.ps1 linia 543).
  2. B: capcana noua in roa-oracle-migration\SKILL.md + scripturi-migrare-db.md: fisierele .sql noi ies cu LF din write/edit; converteste CRLF inainte de publicare. One-liner: $t = [IO.File]::ReadAllText($p); $t = $t -replace "rn","n" -replace "n","rn"; [IO.File]::WriteAllText($p, $t, (New-Object System.Text.ASCIIEncoding))
  3. C: in COMUN\docs\oracle_export.md — un rand: .pck poate fi stale (ex. PACK_MIGRARE fara ramura RF); verifica echivalenta fata de DB live inainte de a-l folosi.
  4. Sterge .pck-urile din COMUN\docs\: PACK_MIGRARE.pck, PACK_UPDATE.pck, PACK_DIAG_SPATIU.pck. Marius: foloseste doar ultimele versiuni din SCRIPTURI_CLAR, nu exporturi .pck din docs. ATENTIE: oracle_export.md si roa-domeniu-rutare\SKILL.md trimit la *.pck — actualizeaza-le.

5. NEFINALIZAT / necomis (din sesiunile trecute)

  • COMUN\utile\roa-sql.ps1 — NOU, necomis (svn add + commit + roa_sync).
  • AGENTS.md: sectiunea "Stil de interactiune" adaugata — necomisa.
  • COMUN\docs\reguli_lucru.md: regula 14 (intreaba cu optiuni in loc de investigatie) adaugata — necomisa.
  • roa-domeniu-rutare\SKILL.md: sectiunea "Comenzi directe" (comenzi sqlplus deterministe) — NEINCEPUTA.
  • Scripturile 03 (M) si 04 (A) din D:\ROA\DATABASE — de comis in SVN (svn add pt 04).

6. Comenzi de reluat

# publicare (deja facuta, doar daca re-rulezi): 
powershell -File D:\ROA\ROAFACTURARE\COMUN\utile\publicare_scripturi.ps1 -DryRun

# SQL pe dev:
powershell -File COMUN\utile\roa-sql.ps1 -Schema MARIUSM_AUTO -Sql "select user from dual"

# commit SVN in D:\ROA\DATABASE (doar 03 + 04, tintit):
#   svn commit 2026\09\ff_2026_09_17_03_COMUN_ID_SET_UNIC.sql 2026\09\ff_2026_09_17_04_COMUN_PACK_MIGRARE.sql -F <mesaj>
# commit COMUN: vezi skill roa-git-svn-commit (doar fisierele aprobate, apoi roa_sync.bat)

7. Capcane platite (NU se repeta)

  • Verificarea CRLF cu ($b -join ',').Contains('13,10') e FALS-POZITIVA. Foloseste (?<!\r)\n.
  • Tool-ul write scrie .sql cu LF, nu CRLF — converteste.
  • .pck-urile din COMUN\docs pot fi stale fata de DB live (PACK_MIGRARE pierduse ramura RF).
  • roa-actualizare-doc / roa-domeniu-rutare NU sunt in lista mea de skill-uri; citeste-le cu read, nu invoca skill.
  • Greseli de disciplina: n-am folosit subagenti (regula 6) si am depasit pragul de 250k (REGULA ZERO).