Database Bootstrap

The Database Bootstrap tool provides the capability to export database objects from one Brightspot environment and import them into another environment. You export data in a package – a JSON text file downloaded to a local drive and then imported into another database.

A package can consist of an entire database, or it can consist of a segment of data associated with a particular application feature or functionality. You can also use the @BootstrapPackage annotation in your Model classes to define custom packages based on specific data types.

../../_images/db-bootstrap.png

Important

  • This tool is intended to be used between Brightspot environments with the same underlying data Model.
  • You set the export and import databases in a configuration file that’s read by the Database Bootstrap tool. For more information, see Database Configuration.
  • Before using the tool, identify the dependencies between data types. Dependencies are objects referenced by another object listed in a package. If a package is downloaded and imported without selected dependencies, the relationships between an object and its dependencies will be lost unless the dependent objects are currently stored in the destination database.
  • For entire database migrations between Brightspot projects, the Database Bootstrap tool is used in conjunction with the Storage Item Copy tool, which copies file-based data from one project to another. File-based data that is used in a Brightspot project is referenced by that project’s database.

Exporting from a Database

  1. Choose one of the following packages to download.

    _init: Downloads the full database. All dependencies are included.

    Application: Downloads the application-specific settings only. In Brightspot, this data is set with the Dashboard (from the Navigation Menu, select Admin > Sites & Settings).

    Production Guides: Downloads all created production guides.

    Referential Text Markers: Downloads any text markers created in an instance.

    Sites: Downloads any multi-site settings.

    Standard Image Sizes: Downloads all cropped image sizes and internal names.

    Users and Roles: Downloads all users and roles.

    Workflows: Downloads all created workflows, transitions, and statuses.

    Click the Dependencies button to view the dependencies for the package, and, optionally, to select dependent data types to include in the export package.

    If you defined custom packages and specified dependencies with the @Recordable.BootstrapPackages annotation, the dependent data types specified in the annotation appear here.

    Click the Types button to view the data types associated with the package.

    If you defined custom packages and specified dependencies with the @Recordable.BootstrapFollowReferences annotation, the dependent data types appear here.

  2. Click Live Download to export the database to a compressed JSON archive and to download it to the local drive.

Importing to a Database

  1. Click Choose File and select the source database JSON file that you previously exported.

    You can select the compressed archive file or the decompressed text file.

  2. Optional: Change the default values of the following options:

    Delete Before Import: If set, before import occurs, the tool will delete all objects in the destination database that are of the same type as in the source, export database.

    Note

    Deletion is solely based on the data types in the source database. The entire destination database is not deleted, unless, of course, you export with the _init option. For example, if an export file consists of only Article objects, then only objects of type Article are first deleted in the destination database before the import operation starts.

    If this option is not set, no deletion occurs to the destination database. However, the tool overwrites objects with the same IDs as objects in the source database.

    # of Writers: The number of database writer tasks to run in the background.

    Commit Size: The number of pending commits to write to the database.

  3. Click Import.

    You can click the Bootstrap Tasks link to monitor the import status. For more information, see Task Status.