fix(pgpm): stop deploy on 'No modules found' error and use consistent module discovery #486
+31
−12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes an issue where
pgpm deploy --createdbwould log "No modules found in the specified directory" but continue executing instead of stopping. The deploy command now properly handles the error case and uses consistent module discovery with the core deploy logic.Key changes:
selectPackagereturns undefined (no modules found)selectPackageto usegetModuleMap()instead ofgetModules()- the former scans for.controlfiles directly while the latter uses pgpm.json patterns, which could miss nested modulestag.tscommand patternfastandlogOnlyflags which were incorrectly defaulting to true when not specifiedReview & Testing Checklist for Human
pgpm deploy --createdb --database testdband verify it now prompts for package selection instead of showing error then continuingpgpm deploy --package mymoduleworks correctly--logOnlyflag and confirm it actually executes SQL (not just logging)getModuleMapvsgetModules) could behave differently in complex workspace structuresNotes
The root cause was a mismatch between how the CLI discovers modules (
getModules()using pgpm.json patterns) vs how core deploy discovers them (getModuleMap()scanning for .control files). In nested workspaces like startkit-example-workspace, the CLI would find no modules while core deploy would find them via .control file scanning.Link to Devin run: https://app.devin.ai/sessions/5d6fa89b81314b06842a9c19ddcfcd62
Requested by: Dan Lynch (@pyramation)