Files
SGF/scripts/sgf-stock-final-backup.php
T
2026-11-11 09:00:17 +02:00

6 lines
1.2 KiB
PHP

<?php
$book='8085';require __DIR__.'/sgf-single-bootstrap.php';
foreach(['host'=>['database'=>$s['env']['DB_DATABASE'],'username'=>$s['env']['DB_USERNAME'],'password'=>$s['env']['DB_PASSWORD']],'native'=>$s['nativeConnection']] as $name=>$c){$dump=new Symfony\Component\Process\Process(['C:/Program Files/PostgreSQL/17/bin/pg_dump.exe','-h','127.0.0.1','-p','55439','-U',$c['username'],'-d',$c['database'],'--format=custom','--no-owner','--no-privileges','--file',$work.'/'.$name.'-before-stock-final.dump'],$repo,['PGPASSWORD'=>$c['password']]);$dump->setTimeout(120);$dump->mustRun();}
$snapshot=['clients'=>$host->table('a_clients')->orderBy('id')->get()->toJson(),'service_drafts'=>$host->table('a_service_drafts')->orderBy('id')->get()->toJson(),'billing_drafts'=>$host->table('a_billing_drafts')->orderBy('id')->get()->toJson(),'journals'=>$native->table('gl_journals')->orderBy('id')->get()->toJson(),'native_binding_sha256'=>hash_file('sha256',$s['root'].'/binding.json')];
file_put_contents($work.'/preservation-private.json',json_encode($snapshot));file_put_contents($s['root'].'/stock-final-backup-pointer.json',json_encode(['root'=>$work]));echo json_encode(['passed'=>true,'private_backup'=>$work,'databases_created'=>0,'business_commands'=>0]).PHP_EOL;