Nonprofits

Migrate Nonprofit solutions from AppSource/PPAC to the GitHub build

This guide explains how to move Common Data Model for Nonprofits and the Fundraising, Grant Management, and Outcome Management solutions from the managed AppSource/PPAC versions to the equivalent build in this repository.

Solutions in scope

Solution Unique name Publisher Prefix
Common Data Model for Nonprofits NonprofitCore microsoftdynamics365nonprofitaccelerator msnfp (84406)
Fundraising SocialImpactFundraising microsofttechforsocialimpact sifund (86385)
Grant Management SocialImpactGrants microsofttechforsocialimpact signt (67719)
Outcome Management SocialImpactOutcomes microsofttechforsocialimpact sioutc (86386)

The three template apps depend on the base data model NonprofitCore, so migrate it first and keep it installed.

How the migration works

The GitHub build and the AppSource/PPAC build are the same solution. They share an identical unique name and publisher. As a result:

Requirements and constraints

Set the version

There are no versioning scripts in this repository. Edit the <Version> element directly, and set it to the same as or higher than the installed version. To check the installed version, go to Power Apps (make.powerapps.com) > Solutions.

Migration flow

Migrate Common Data Model for Nonprofits first, then each app, and repeat the flow in each environment.

  1. Back up and rehearse in a sandbox first.
  2. Migrate NonprofitCore by using the build and import steps that follow, before the apps that depend on it.
  3. Build the managed solution:
    cd CommonDataModelforNonprofits   # then Fundraising / GrantManagement / OutcomeManagement
    dotnet restore
    dotnet build --configuration Release
    

    Output: bin/Release/<SolutionName>_managed.zip.

  4. Authenticate:
    pac auth create --environment https://YOUR_ENVIRONMENT_URL
    
  5. Import as a staged upgrade (delete nothing):
    pac solution import --path bin/Release/SocialImpactFundraising_managed.zip --stage-and-upgrade
    

    Two-step equivalent: pac solution import --path ... --import-as-holding then pac solution upgrade --solution-name SocialImpactFundraising.

  6. Validate. Confirm that the version incremented, the status is Managed, and the apps, tables, and sample records are intact.
  7. Repeat for the next product, and promote from sandbox to production after you validate the results.

Roll back

If sandbox validation fails, restore from the backup. A production upgrade isn’t easily reversible, which is why the rehearsal and backup are required.