When building a PowerApp which has Dataverse for storage, are there recommended best practices for managing data schema changes (e.g., adding or dropping columns or tables) as new versions / upgrades of the PowerApp get released into AppSource?
As a reference point, in other environments, one can use something like Liquibase to track, version, and deploy database changes as an application gets upgraded. What should someone do to address this issue with PowerApp / Dataverse ?
Thank you for any guidance !
@dfladung, I would say the best practices and tools are with solutions and the Build Tools and GitHub actions. More info: https://learn.microsoft.com/power-platform/alm/devops-build-tools and https://learn.microsoft.com/power-platform/alm/devops-github-actions
Cheers
As an addendum to this question, tools like Flyway and Liquibase allow both DDL and DML updates. If I needed to perform the equivalent of DML operations as part of a solution upgrade, is the recommendation to use Power Automate as part of a staged upgrade?
Thank you! Just what I needed, and I really appreciate your help.
Thank you so much - this is very helpful and exactly what I needed
Hi @Chris1969,
The simplest approach especially if you're new to Dataverse is with solutions. Solutions are used to move changes/configuration/customizations/schema between environments and/or save/backup them. You can save that solution into a repository and you can even unpack (a bit more advance) the solution to decompose the solution into xml files per component type. You can then commit those files into source control (eg Azure DevOps) to gain all the goodness of versioning and conflict resolution.
More on solutions: https://docs.microsoft.com/powerapps/developer/data-platform/introduction-solutions
More on unpacking solutions: https://docs.microsoft.com/power-platform/alm/use-source-control-solution-files
Hope this helps!
Hi @Chris1969,
Dataverse components all have metadata that keeps track of the version it was introduced and its current version. In its raw form (unpacked) it's in either a human readable format such as XML or YAML, which can then be stored in a version control system such as Github or Azure are Repos.
If using one of the above tools, there are Microsoft extensions for exporting, Importing, unpacking, packing solutions etc to help manage the lifecycle of your Dataverse and other Power Platform components.
Have a look at Power Platform Application Lifecycle Management on Microsoft Docs, it goes into depth on all the platform capabilities and tooling to help with this.
https://docs.microsoft.com/en-us/power-platform/alm/basics-alm
---
Please click Accept as Solution if my post answered your question. This will help others find solutions to similar questions. If you like my post and/or find it helpful, please consider giving it a Thumbs Up.