[SalesForce] Deploy questions

I have several questions regarding what can and cannot be done using Eclipse to deploy.

In my next deploy I will be implementing some significant changes to our current schema. This was necessary due to our company's change in account management. I won't go into details here, but I will say that it will require us to perform massive changes to our current data, including moving data from one object to another, and changing the relationships between certain objects as well. We will first be performing\testing these data changes in a full copy sandbox.

  1. What would be the best and most efficient approach to this ? Is it possible to perform the data changes in the full copy sandbox and then migrate the data into Production from there ? I'm assuming it is not possible, but I wanted to ask just in case I was missing something. What would you do ?

  2. What can/cannot be done through Eclipse in regards to User Licenses, Roles, and user profile information ? Is it possible to change a user’s role through Eclipse ? I know we can deploy Roles and Permission Sets. I also know we can do mass Permission Set assignments using the PermissionSetAssignment object through Data Loader. Can something similar be done with Licenses and Roles ?

  3. Is it possible to delete fields or validation rules by performing a delete in Eclipse ? I would like to delete a field once in sandbox and then deploy that object to Production and not have to delete the fields again in Production. I have tried this but it doesn't seem to work. Is it possible ?

Thank you very much for your insight and feedback. I really appreciate your time.

Best Answer

I bet you will have to jump through a lot of hoops to manifest all the changes--especially if you the objects at hand have Validation Rules and associated Apex Classes and Triggers. But since you have a Full Sandbox at your disposal, which is a literal carbon copy (data and all) of your production, you will have a working modal to see how to implement the changes in a good way.

My first suggestion is to refresh your Full Sandbox before you start rolling out the changes. This way the Sandbox will fully mimic your Production org (except for newly created records).

1-ish

Then, start bringing over your changes from the the Eclipse IDE. If your scenario is even slightly complex, you will probably have to bring over all of your changes in stages. (And remember, every time you try to deploy a set of changes, ALL of your test code must pass.) You'll probably find that you need to make Field changes first, and then you can add your code, but each situation is different.

I've found that the IDE is much better at deploying changes to Object Metadata compared to Change Sets (though the IDE can only create fields, not delete any (easily)).

2

I am nearly sure you can access any Standard or Custom Object via IDE (and API) including User, Profile, etc. Test to be sure.

3

Generally, it is not possible to delete Metadata via the IDE. I've tried to do it before, like trying to delete fields, but it was more complicated than I cared to do.


If you are deploying NEW objects and Apex code, it might be beneficial to create a Package. They are really easy to create, and they bundle all of your objects + fields + code together in a matter of (order of 10) clicks. But if you are modifying current Standard or Custom objects, Packages might be more of a nuisance, and the IDE and Change Sets are probably an easier way.