how to delete Packages in salesforce? - salesforce

Can we delete packages in salesforce or remove certain fields which have been referenced there?
I created a package couple of months ago and the changeset had certain fields which are part of an App Exchange Package. And I am unable to uninstall the package from my Sandbox?
Can someone help?

You can uninstall managed packages, but you can't selectively remove certain fields.
This link should take you to the page to uninstall the package:
https://ap4.salesforce.com/0A3?setupid=ImportedPackage
You might need to change the "ap4" to your org's instance id.
When you uninstall the package, the data will be deleted (although there is an option to save it for a short period of time). It might be best to make a backup of any data you might need later before uninstalling.

Related

Reassign a namespace in the same dev org

Can you reassign the namespace in a developer org to another package?
I currently have a manage package and in that package I've assigned my namespace. I created a Beta version for now.
Ultimately I want to keep using the namespace but use an up to date code.
Warning. It only works if you have a beta package. If you release the package then you will not be able to
Turns out that you can't find any information online about this but You can!
My beta package needed to be deprecated and I manage to delete the package entirely from the dev org. - Keep in mind that when you delete the package it doesn't remove the objects and components from that org so you will have to go back into the org and manually delete everything. This is probably the only hassle.
I then created a new package. reassigned the namespace to this new package and created a release version from there.
I've read some reviews that some people say you can but you have to uninstall from all your customers. Deprecate every version and it may work but I can't confirm that.

When I do a git pull origin master from Pantheon, it doesn't seem to pull the database

I'm new to this workflow using Git, and I feel like I'm missing one piece of information that's just not obvious to me. I setup a sandbox on Pantheon and did a Drupal install thru Pantheon. Works fine on dev. Then I cloned it to my local, but when I open my local up in a browser it wants to install Drupal, like it was never setup on Pantheon. My best guess is that it's not pulling the database, can't find it, and figures it's a fresh install. But how do I connect the dots here? Thanks!!
You are correct, the database does not pull down with git, only code.
You will either need to manually download the database from their UI or use their command line tool named Terminus. If you're comfortable with the command line, Terminus is the most convenient.
Another option would be to use Kalabox. This is a local dev environment tool which was just released. I haven't tried the latest release yet but have read users reporting it integrates with Pantheon nicely.

Sitecore - Transfer a site from one installation to another

I am running Sitecore 6.5
I have two installations of Sitecore and want to transfer a whole site from one installation to another.
Have found a few articles that go into Serialization and Creating a Package although they don't go into detail about how these two fit together.
How do I transfer a site from one installation to another?
thanks.
Create a package with the package designer.
include these items and their children with the button "items statically". if you have placed your solution specific item in folders, it is only needed to include these.
/sitecore/content
/sitecore/layout
/sitecore/media library
/sitecore/templates/ (only take the templates you have created. e.g. the folder user defined
using the button "files statically", include the folders with you have solution specific changes to like:
/bin
/layouts
/app.config/include (only take the files changed in the solution,
compared to a default sitecore installation)
web.config (if you have made changes to this, compared to default
sitecore web.config)
if you have any user accounts you want to transfer to, you can include them with "security accounts".
then generate zip file and install on empty sitecore and full publish :)
If your systems are similar enough, you may want to consider moving the Sitecore DBs via backup/restore (in SQL) and copying over filesystem assets. Generally I find this faster and less prone to user error than creating/installing very large packages. (Just remember to take back-ups first.)
Large packages have a tendency to break, one option would be to look into this:
http://www.hhogdev.com/Products/Team-Development-for-Sitecore/Overview.aspx
TDS can sync all your items to XML on your dev box and from that you can create a different sort of installation package which is significantly more robust than a regular package you create through the Sitecore desktop. It's the same sort of package that Sitecore use when you upgrade versions.
I believe there is a 60 day trial on this product so plenty of time to try it out.
Note: when transferring user accounts, passwords will not be migrated when using either packages or serialization.
Solution is here - cowboy-aspx from Sitecore :)
https://kb.sitecore.net/articles/242631

Package Upgrade Best Practices

In creating a package with Data Types and Items, what are the best practices to follow for subsequently upgrading a package in order to retain the data that's created on the site while adding a change to the associated Type?
Should the package name remain the same or should it include version information to retain uniqueness by version? The version number of the package does not seem to enforce any type of upgrade policies.
Currently during development the package is uninstalled then the newer package is subsequently installed however after the package reaches production I believe this type of upgrade workflow will not be sufficient without affecting the associated data.
As long as you increase the package-version but keep its unique GUID and Name, you're able to install the same package again, forcing C1 to overwrite the existing files, configuration etc.
This has a few caveats though, mainly if you need to delete some old files or configuration entries during installation, since that's what you normally do during un-installation. But you can still do it, writing your own installaton-steps code.
It is classes inheriting from some core base package-classes that you can invoke during installation. It can contain logic like checking if certain other packages are installed, do custom special logic, or clean up from earlier upgrades.
But yeah, long story short, as long as the version number increases you can "upgrade" a package, by installing the newer version, while the older one is still installed.

How do you manage your run once sql install scripts in subversion?

I'm working at a company that does several releases to production every year and during the build up to each release we gather up a collection of 1 time sql install scripts like table creation and dataports.
The way things currently work is that after the release to production, we branch, tag then we delete all 1 time scripts from subversion.
This seems to get the job done but to me it never seemed like the proper way to solve the problem.
Could you imagine deleting all your sourcecode every release and then writing patches for production?
The downsides that I see is if you want to reference and old script you have to checkout a tag or branch from subversion.
Our SVN Repo currently looks something like this
svnrepo/mywebsite/src
svnrepo/mywebsite/database/storedprocs
svnrepo/mywebsite/database/installscripts
I was thinking that a more accurate way to model what we want to do in SVN is the following.
Use an svn:externals attribute to point to the latest version. Then after every release just point it to the latest.
svnrepo/mywebsite/trunk/src/
svnrepo/mywebsite/trunk/src/database/installscripts/
-> svnrepo/mywebsite/trunk/database/Release_3
svnrepo/mywebsite/trunk/database/Release_1
svnrepo/mywebsite/trunk/database/Release_2
svnrepo/mywebsite/trunk/database/Release_3
Using this model we no longer svn delete any sql scripts and enable a database developer to check out svnrepo/mywebsite/trunk/database/ and easily view all the database development that has occurred.
Any comments on my ideas, the current structure, or the best way to manage this situation?
Thanks
Synchronising database changes and code changes in subversion is hard
If you have the option of building the Database from scratch you can put the whole DDL into the repository along with the code, then you don’t need to worry about which changes go with which release.
Looking at your situation I don’t think you need to use externals (they can cause headaches). You also don’t need to delete everything. It is not too difficult to check out a branch (or you could just use a repository browser).
You could even put the old db releases into a separate tag when you release so they are all in one place, which the database people can have checked out. If you are doing releases once a year this won’t be hard.
This question may also help

Resources