feat(db): add seed script for mock data
CI / basic-check (push) Has been cancelled

This commit is contained in:
2026-08-06 16:04:05 +00:00
parent a732ac5655
commit fd93758567
+33
View File
@@ -0,0 +1,33 @@
import sys
sys.path.insert(0, "/opt/NetMapper2026/backend")
from datetime import datetime, timezone
from app.database import SessionLocal, engine, Base
from app.models import NetObjectModel, RelationModel
Base.metadata.create_all(bind=engine)
db = SessionLocal()
NOW = datetime.now(timezone.utc)
if db.query(NetObjectModel).count() == 0:
db.add_all([
NetObjectModel(id='obj_1', name='Site HQ', slug='site-hq', type='site', status='active', created_at=NOW, updated_at=NOW),
NetObjectModel(id='obj_2', name='Rack A', slug='rack-a', type='rack', parent_id='obj_1', status='active', created_at=NOW, updated_at=NOW),
NetObjectModel(id='obj_3', name='Proxmox Host', slug='proxmox-host', type='physical_host', parent_id='obj_2', status='active', vendor='Lenovo', model='ThinkCentre', created_at=NOW, updated_at=NOW),
NetObjectModel(id='obj_4', name='OpenWRT VM', slug='openwrt-vm', type='vm', parent_id='obj_3', status='active', created_at=NOW, updated_at=NOW),
NetObjectModel(id='obj_5', name='Core Switch', slug='core-switch', type='switch', parent_id='obj_2', status='active', created_at=NOW, updated_at=NOW),
])
db.add_all([
RelationModel(id='rel_1', type='contains', layer='physical', source_id='obj_1', target_id='obj_2', source='manual', confidence=1.0, created_at=NOW, updated_at=NOW),
RelationModel(id='rel_2', type='contains', layer='physical', source_id='obj_2', target_id='obj_3', source='manual', confidence=1.0, created_at=NOW, updated_at=NOW),
RelationModel(id='rel_3', type='contains', layer='physical', source_id='obj_3', target_id='obj_4', source='manual', confidence=1.0, created_at=NOW, updated_at=NOW),
RelationModel(id='rel_4', type='contains', layer='physical', source_id='obj_2', target_id='obj_5', source='manual', confidence=1.0, created_at=NOW, updated_at=NOW),
RelationModel(id='rel_5', type='routes_via', layer='network', source_id='obj_3', target_id='obj_4', source='manual', confidence=1.0, created_at=NOW, updated_at=NOW),
RelationModel(id='rel_6', type='connects_to', layer='network', source_id='obj_4', target_id='obj_5', source='manual', confidence=0.9, created_at=NOW, updated_at=NOW),
])
db.commit()
print("Seed completato: 5 oggetti, 6 relazioni inseriti.")
else:
print(f"DB gia' popolato ({db.query(NetObjectModel).count()} oggetti), skip.")
db.close()