Hi Everyone,
I have below SQL server environments (Not the Power Apps environment):
Dev Environment: Server A -> '[DevDBName].[SourceTableName]'
Pre-Prod Environment: Server A -> '[ProdDBName].[SourceTableName]'
Prod Environment: Server B-> '[ProdDBName].[SourceTableName]'
If you observer above,
1. Table name SourceTableName and its schema is same in all environments.
2. Dev and Pre-Prod reside in same Server A and Prod is in different Server B.
3. Both Pre-Prod and Prod have same DB name ProdDBName.
Below is what I am currently doing:
1. When I migrate Power Apps from Dev to Pre-Prod, I have to visit each formula in Power Apps and change the DB Name.
2. I am yet to plan for migration of Power Apps from Pre-Prod to Prod and yet to decide on keeping both the Power Apps on same power apps environment or keep them in separate environment.
Below are my queries:
1. What is the best possible way to avoid manual db name change in all the formulas from DevDBName to ProdDBName?
2. If I move from Pre-Prod to Prod, and if they are in same Power Apps environment, do I still have to go everywhere and change it manually as both db names are same?
3. If I plan to keep Pre-Prod and Prod in different Power Apps environment, do I still have to go everywhere and change it manually as both db names are same?
Thanks in Advance,
Sidhharth M.
@SidhharthM : I hope I understood this correctly, if not please rephrase the question if possible.
Even though the DB and table names and schemas are the same, you might need to manually select the new connection. This is because it does not only go by name, but by ID as well.
1. You could export the app as a package and edit the JSON, but this might break the app and is unsupported.
For 2 and 3, my opinion is that you might have to change any connection/selection that points at a different location than where the original app pointed.
@edguerre Thanks for the input. Yes, of course we need to change the connection when connecting to different data source. But my main issue is manually going everywhere in Power Apps formulas and changing db name. Is there any better approach for this?
PS: I have tried changing db name in json file, but still I had to change the db name manually everywhere.
Is there any update on this? manually updating every time there is an update seems a bit frustrating?
Well, there is a way, especially when we use Data verse or SharePoint. We can use Solutions for migrating from one environment to other, all the db tables get automatically created:
Is this real? We're pretty far into developing a PowerApp and I'm trying to move it from Dev to Test for UAT and then to Prod. Source info is in an Azure SQL Database. I'm having a hell of a time getting this to work. I've resigned myself to creating new tables and manually changing the formulas to point to the new tables, but even that is not working well as I can't always add or delete a table. Just does nothing or spins most of the time. So not way to port from Dev to test to prod unless you used Dataverse tables?
Hi @AbeNewton ,
I had the same issue and kind of figured a way to do this, not sure if it suitable for your needs as well.
What I did was create a second "development" environment, a sandbox in Microsoft Admin. In this environment I copied the whole PowerApps project. This has to be done manually but is not that much of a hassle. Then I also created a copy of the production Azure SQL database into a "development" database. I've connected this development environment to this azure sql development database and then you are, in some way, in a "Development" env. From here you can change whatever you like and when you want to publish to production, just export and import the Power Apps project again and you have to make sure the PowerApps connection is set to production then it will work.
Let me know if this helps and if you need more help!
I think you can also create a third environment for testing.
Regards,
Wouter
@WoLe98 Were your tables Metaverse tables (it sounds like they were AzureSQL) My app is setup with Metaverse but we are not using it. Only using AzureSQL. I started with AzureAD Integrated Security on SQL Connector since that was the recommended best practices on the MS Tech docs but have reverted to SQL Auth since the AzureAD seemed to have issues with migration that are worse than SQL Auth
I've exported and imported the AzureAD based app from dev to test PowerApps environment. Seemingly no way to change the connections for AzureAD Auth so I started recreating the data sources as AzureSQL. However I don't seem to be able to delete all of the old data sources. Some just spin and then error out when I click delete. Very frustrating. This is not a gigantic app either. Hits about 15 tables.
I did figure out the path forward on this with Azure SQL Server Data Sources and Dev / Test / Prod environments. It's finicky to setup and not well documented by Microsoft at all and you may have to rebuild some apps to get it into the correct path going forward. The key is creating a "PowerPlatform Solution" and then creating a new App within the solution. You may have to play with these steps. It seemed like slight deviations would cause the whole thing to not work in then end.
Thank you @AbeNewton for your insights and @SidhharthM for posting the original question!
I've come across the same problem...
Funny that over a year later Power Platform still haven't sorted out Azure AD Auth functionality with ALM - two 'best practice' principles that are seemingly incompatible with one another 😕