diff --git a/ax/storage/sqa_store/sqa_classes.py b/ax/storage/sqa_store/sqa_classes.py index a983d63790d..227c223a2bb 100644 --- a/ax/storage/sqa_store/sqa_classes.py +++ b/ax/storage/sqa_store/sqa_classes.py @@ -292,6 +292,7 @@ class SQATrial(Base): time_run_started: Optional[datetime] = Column(IntTimestamp) trial_type: Optional[str] = Column(String(NAME_OR_TYPE_FIELD_LENGTH)) generation_step_index: Optional[int] = Column(Integer) + properties: Optional[Dict[str, Any]] = Column(JSONEncodedTextDict, default={}) # relationships # Trials and experiments are mutable, so the children relationships need diff --git a/ax/storage/sqa_store/tests/utils.py b/ax/storage/sqa_store/tests/utils.py index 4eef2a647e4..e09d73f6896 100644 --- a/ax/storage/sqa_store/tests/utils.py +++ b/ax/storage/sqa_store/tests/utils.py @@ -216,7 +216,7 @@ "num_arms_created": "num_arms_created", }, python_only=["experiment", "status_quo", "status_quo_weight_override"], - encoded_only=["is_batch", "status_quo_name", "deployed_name"], + encoded_only=["is_batch", "status_quo_name", "deployed_name", "properties"], ), "BraninObjective": EncodeDecodeFieldsMap( python_only=["metric"], @@ -434,6 +434,7 @@ "status_quo_name", "deployed_name", "optimize_for_power", + "properties", ], ), }