diff --git a/backend/seed_db.py b/backend/seed_db.py new file mode 100644 index 0000000..693c5cc --- /dev/null +++ b/backend/seed_db.py @@ -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()