Preserve unpublished applications during a system clone

Application developers must manually save a copy of each application currently in development prior to cloning over their development instance.

Before you begin

  • Role required: admin
  • Write access to the application record
  • A source control repository

About this task

The cloning process does not preserve version differences for applications in development. Instead, the system clone only copies the application version installed on the source instance onto the target instance. If the target instance had a development version of the same application, the application will be editable after the clone, but it will be at whatever version was installed on the source instance. If the application was missing from the source instance, the cloning process deletes the application from the target instance.

Procedure

  1. Use one of these actions to preserve the application on the clone target instance.
    Table 1. Version differences between instances
    Application version state Action to take
    The application version on the clone target instance is different than the source instance version. Export each application from the clone target instance. Choices include:
    • (Recommended) Link each application to a source control repository.
      Note: If the application is already linked to a source control repository, commit the latest version to it.
    • Publish each application to an update set.
    The application is only available on the clone target instance.
    The application version on the clone target instance is the same as the source instance. None. The system clone process will copy this application version onto the target instance during the clone.
  2. If you saved each application to a source control repository, create data preservers on the clone target instance for these source control integration tables.
    • sys_repo_branch
    • sys_repo_config
    • sys_repo_stash
    • sys_repo_tag
  3. Schedule a system clone of the source instance over the target instance.
    For example, clone your production instance over your development instance.
  4. Log in to the clone target instance.
  5. If you saved each application to a source control repository, use one of these actions to retrieve them from the source control repository.
    Table 2. Retrieve applications from a source control repository
    Application installation state Action to take on clone target
    The application was previously installed on the source instance. Apply remote changes from source control repository.
    The application was never installed on the source instance. Import the application from source control repository.
  6. If you saved each application to an update set, use one of these actions to retrieve them from the update set.
    Table 3. Retrieve applications from an update set
    Application installation state Action to take on clone target
    The application was previously installed on the source instance.
    1. Delete the application version cloned from the source instance.
    2. Load the update set containing the current application version.
    The application was never installed on the source instance. Load the update set containing the current application version.

Result

The applications previously in development are available for further development on the clone target instance.

Preserve the Marketing Events application

Suppose your company previously created version 1.0 of a custom application called Marketing Events. You have already published version 1.0 of the Marketing Events application to the application repository and installed it on your production instance.

Over time, users have submitted enhancement requests for the application, and you decide to develop version 2.0 of the Marketing Events application on a sub-production instance to address these requests. As development nears completion, you want to update your sub-production instance to the latest copy of production for some comprehensive testing.

Since you previously used a source control integration to develop version 1.0 of the Marketing Events application, you have already linked the Marketing Events application to a source control repository. You commit version 2.0 of the Marketing Events application to the source control repository. You create data preservers for the source control integration tables on the clone target instance.

You schedule a clone of the production instance over the development instance. After completion, you log in to the development instance and see that it has version 1.0 of the Marketing Events application, because that was the version installed on the source instance.

Since the application was already installed on the source instance, you apply remote changes from the source control repository to receive the latest application version. The development instance now has version 2.0 of the Marketing Events application available for further development and testing.