Import nodes as part of deployment using Hook Update Deploy Tools
With the 7.x-1.18 release of Hook Update Deploy Tools for Drupal 7 it is now possible to export a node on a development sandbox, commit the export file to the repository, then import it using either a hook_update_N() or using drush site-deploy-import node
Pros:
- No need to re-create a node on prod after a client approves it.
- Early content that keeps getting wiped out by database snapshots (think style guides) can get re-created instantly with a single drush command.
- Content imported into an existing node shows up as a revision.
- Automated deployment is testable and repeatable on all dev environments.
- No uuid required.
Workflow Example:
You have a styleguide you created on your sandbox and want to deploy it to the production site.
- Create the node on your sandbox (node id = 1234).
- Export the node to an export file.
drush site-deploy-export 1234
- The command created an export file named for the alias of the node being exported
ex: site-deploy/node_source/helpzZzstyle-guide.txt ('zZz' represents '/') - Create a hook_update_N() to import the file on deployment
<?php
/**
* Import a the style guide
*/
function site_deploy_update_7129() {
$nodes = array('help/style-guide');
$message = HookUpdateDeployTools\Nodes::import($nodes);
return $message;
}
?> - Commit the file and update hook to your repo.
- Push the code, run 'drush updb'
drush updb -y
Site_deploy 7129 Import a the style guide
Site_deploy: Updated: node/1234: help/style-guide - successful.
Summary: Imported Nodes 1/1. Completed the following:
[help/style-guide] => Updated: node/1234
Performed update: site_deploy_update_7129
or the import can be performed by
drush site-deploy-import help/style-guide
Questions? Here are some FAQs for Drupal node export import