cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
HamidBee
Skilled Sharer
Skilled Sharer

How production, test and development environments are created

When production, test and development environments are created:

 

1. Does one create three solutions within the same environment?

or

 

2. Create three separate environments?

 

If it is option 2, then are different Dataverse tables built for each environment?.

 

Thanks in advance. 

3 ACCEPTED SOLUTIONS

Accepted Solutions
phipps0218
Super User
Super User

3 environments.
When moving from test to prod do this as a managed solution.

 

Please Accept as Solution if it solves your question. Or just give it a Thumbs Up if it is helpful because this can help others.

LinkedIn: https://www.linkedin.com/in/charlie-phipps-%F0%9F%91%A8%E2%80%8D%F0%9F%92%BB-91338715b/
YouTube: https://www.youtube.com/channel/UChmFBGU1YKIU91sNMQ7buGg
Twitter: https://twitter.com/phipps0218

View solution in original post

timl
Super User
Super User

@HamidBee 

>> Okay If I've understood correctly. You create a test environment. In the test environment you create a solution. In that solution you create the app and similarly you create a production environment with a solution so that the apps could be moved from one environment to another. But if the App was built using a dataverse table in the test environment what happens to the table when it is moved into the production environment?. Do we need to make copies of it?.

 

To clarify your statement above, the typical workflow would look like this.

You create 3 separate environments - development, test, and production environments.

 

In your development environment, you would create a solution. In this solution, you would create/define your table. Within this solution, you can also create model driven or canvas apps that are based on that table.

 

Once your development task is complete, you would export this solution and import it into your test environment.

You would publish this solution in order to apply the changes to the test environment.

 

If the users are happy with your work, you would import the solution into your live environment and publish the changes.

 

Effectively, the process is based on a single working solution, rather than separate solutions in each environment. A solution contains only the items/table changes that you add to it. It doesn't contain the schema of all tables and objects in Dataverse.

 

If you were to publish a solution with table changes that are not in the target Dataverse database, the publish process will add those table changes.

 

Hopefully, that provides some clarification.

View solution in original post

timl
Super User
Super User

Hi @HamidBee 

Let's say you're in the test phase and you're using a single environment. It isn't possible to publish the changes in the test solution to the current environment, and to also publish changes in your development solution to the same environment because the changes in both solutions would overwrite each other. In other words, you can't concurrently develop and test in the same environment. Therefore, moving from environment to environment is the correct approach.

View solution in original post

11 REPLIES 11
phipps0218
Super User
Super User

3 environments.
When moving from test to prod do this as a managed solution.

 

Please Accept as Solution if it solves your question. Or just give it a Thumbs Up if it is helpful because this can help others.

LinkedIn: https://www.linkedin.com/in/charlie-phipps-%F0%9F%91%A8%E2%80%8D%F0%9F%92%BB-91338715b/
YouTube: https://www.youtube.com/channel/UChmFBGU1YKIU91sNMQ7buGg
Twitter: https://twitter.com/phipps0218

Nogueira1306
Super User
Super User

Every environment has it own Dataverse

 

So, I think that you have 3 environments with 3 dataverse tables

 

If you need additional help please tag me in your reply and please like my reply.
If my reply provided you with a solution, pleased mark it as a solution ✔️!

Best regards,

Gonçalo Nogueira

Check my LinkedIn!

My website!

My blog!

HamidBee
Skilled Sharer
Skilled Sharer

@Nogueira1306 , @phipps0218 Okay If I've understood correctly. You create a test environment. In the test environment you create a solution. In that solution you create the app and similarly you create a production environment with a solution so that the apps could be moved from one environment to another. But if the App was built using a dataverse table in the test environment what happens to the table when it is moved into the production environment?. Do we need to make copies of it?.

Yes. You need to create the table in the other enviroment. But you cna import/export the solution and the solution will contain the table

 

If you need additional help please tag me in your reply and please like my reply.
If my reply provided you with a solution, pleased mark it as a solution ✔️!

Best regards,

Gonçalo Nogueira

Check my LinkedIn!

My website!

My blog!

HamidBee
Skilled Sharer
Skilled Sharer

Okay just to confirm, Are you saying that when a solution is exported the dataverse in that environment is also exported with it?. @timl any help here would be greatly appreciated. 

timl
Super User
Super User

@HamidBee 

>> Okay If I've understood correctly. You create a test environment. In the test environment you create a solution. In that solution you create the app and similarly you create a production environment with a solution so that the apps could be moved from one environment to another. But if the App was built using a dataverse table in the test environment what happens to the table when it is moved into the production environment?. Do we need to make copies of it?.

 

To clarify your statement above, the typical workflow would look like this.

You create 3 separate environments - development, test, and production environments.

 

In your development environment, you would create a solution. In this solution, you would create/define your table. Within this solution, you can also create model driven or canvas apps that are based on that table.

 

Once your development task is complete, you would export this solution and import it into your test environment.

You would publish this solution in order to apply the changes to the test environment.

 

If the users are happy with your work, you would import the solution into your live environment and publish the changes.

 

Effectively, the process is based on a single working solution, rather than separate solutions in each environment. A solution contains only the items/table changes that you add to it. It doesn't contain the schema of all tables and objects in Dataverse.

 

If you were to publish a solution with table changes that are not in the target Dataverse database, the publish process will add those table changes.

 

Hopefully, that provides some clarification.

HamidBee
Skilled Sharer
Skilled Sharer

Hi @timl. Thank you for adding onto the discussion. I just have one follow up question. Where you wrote:

 

"A solution contains only the items/table changes that you add to it. It doesn't contain the schema of all tables and objects in Dataverse."

 

Does that still mean that any table in the solution is exported to wherever the solution is exported to and any table outside of the solution is not exported?. Also are tables in the solution also saved in dataverse?.

 

Also, I'm just curious, why can we not have the solutions all in one environment, would it be considered bad practise?. If so, why?.

 

Thanks in advance. 

timl
Super User
Super User

@HamidBee 

>> Does that still mean that any table in the solution is exported to wherever the solution is exported to and any table outside of the solution is not exported?. Also are tables in the solution also saved in dataverse?.

Yes, that's correct for both of those questions

 

>>Also, I'm just curious, why can we not have the solutions all in one environment, would it be considered bad practise?.

 

I'm not sure I understand the intent of this question, but if we imagine a solution as a container or 'vehicle' for moving objects and changes between environments, then it's necessary to import the solution into all target environments in order for us to publish the changes that are contained in the solution.  Is that the answer you're looking for, or did I misunderstand the question?

 

Thanks for clarifying the first part. For the second question what I mean is assume I have an environment and in that environment I have created three solutions. Solution one is a development solution, two is a test solution and three is a production solution. So all these solutions are in one environment. As I progress through the stages I copy the contents of the solution to the next environment. So instead of moving from environment to environment I move from solution to solution. Is this possible? If yes, should we do this?. If no, why is it not something we should do?.

 

Thanks in advance. 

Helpful resources

Announcements
Power Apps News & Annoucements carousel

Power Apps News & Announcements

Keep up to date with current events and community announcements in the Power Apps community.

Community Call Conversations

Introducing the Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Apps Community Blog Carousel

Power Apps Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Top Kudoed Authors
Users online (1,666)