You Mentioned that you’re staying on the same Business Central version (no platform upgrade involved), you can do this safely, but you must handle it carefully so you don’t lose data during uninstall/install.
Use Data Upgrade and Schema Sync
1. Keep Object IDs & Names the Same
> The most important thing is to preserve the object IDs (tables, fields, pages, enums, etc.) when you move them from Projects B, C, D into Project A.
> This allows Business Central to match existing data to the new objects during schema synchronization.
> If you change object IDs or table names, BC will treat them as new tables → resulting in empty tables.
2. Unpublish Old Extensions in a Controlled Way
Take a backup of your database before you begin.
Use Unpublish -DoNotSaveData only if you are ready to delete data, in your case, you want to preserve data, so you should uninstall with data retained.
3. Publish & Install the New Merged Extension
> Build your merged Project A (with all objects from B, C, D).
> Publish the new extension to your environment.
> During installation, BC will do a schema sync:
- If IDs match, existing data will be mapped automatically.
- Pages/codeunits will work seamlessly with the retained data.
4. Optional) Use DataUpgrade Codeunit
> If you made any structural changes (like renaming fields, merging tables, or changing primary keys), you need to:
5.Test in Sandbox First
6. Things to Avoid
> Don’t change object IDs during merge (unless you’re ready to write upgrade code to migrate data).
> Don’t uninstall with -DoNotSaveData:$true — it will drop SQL tables and you’ll lose data.
> Don’t forget to handle permissions — merged extension should include permissions from all four projects.