How to import your packages
Ways to import packages
All package export types can be imported via the package import UI and using Drush CLI commands.
During the import of packages, the standard Drupal config validation and Site Studio specific validation is performed. There is also an option of performing additional data integrity checks, to ensure that layout canvas changes in imported entities are not going to cause data loss due to updated fields that are already being used in the destination environment.
We recommend testing deployments with extra validation enabled on Staging environments with a copy of the up to date Production database. This will ensure that no data loss will happen during package import, but will minimise deployment times by not running resource heavy validation on Production environments during deployment.
Importing file dependencies
During the import process for each file entity in a package, a check is performed to see if the file entity exists in the destination environment. If the file entity doesn’t exist, it is created.
If the file entity does exist, a further check is performed to see if the entity in the package differs from the entity in the destination environment. If a difference between the files is detected, the file entity included in the package will overwrite the existing file entity.
When looking for differences between the files, the following attributes are compared:
- The actual file contents in the filesystem
- File Mime Type
- File size
While it is technically possible to edit media files directly in a package directory, we do not recommend doing so. While the updated file will be imported, various levels of caching mechanisms will most likely prevent the update from propagating throughout the website.
Once validation is complete and the import process is finished, the Site Studio package import performs partial rebuild on imported and existing entities as required.
In some cases a full rebuild has to be performed, if imported changes will have a knock on effect on all of the Site Studio styles. For example, updating Base Unit Settings would trigger a full rebuild.
When importing packages using the Site Studio package management UI or Drush commands, there is no need to trigger rebuilds manually, as the import process takes care of that in the most efficient way possible.