Skip to main content

Blog

Code snippet for file entity migration

Migrating files and images into Drupal

We have already covered two of many ways to migrate images into Drupal. Today, we are going to perform an image migration that will clear after itself when it is rolled back. Note that in Drupal images are a special case of files. Even though the example will migrate images, the same approach can be used to import any type of file.

List of drush commands used in drupal migration workflows

Tips for writing Drupal migrations and understanding their workflow

We have presented several examples as part of this migration blog post series. Today we are going to talk about what happens after import and rollback operations, how to recover from a failed migration, and some tips for writing definition files.

Syntax for constants and pseudofields in the Drupal process migration pipeline.

Using constants and pseudofields as data placeholders in the Drupal migration process pipeline

So far we have learned how to write basic Drupal migrations and use process plugins to transform data to meet the format expected by the destination. In the previous entry we learned one of many approaches to migrating images. In today’s example, we will change it a bit to introduce two new migration concepts.

Examples of migrating into subfields.

Migrating data into Drupal subfields

Migrate process plugins transform data between source and destination. This gets more complicated for Drupal fields have multiple components. Today we will learn how to migrate into them and know which subfields are available.

Syntax for process plugin definition and chaining

Using process plugins for data transformation in Drupal migrations

Sometimes in a Drupal 7 to Drupal 8 migration we copy values verbatim from the source to the destination. Often, the data needs to be transformed to match the format expected by the destination. Today we will learn more about process plugins and how they work as part of the Drupal migration pipeline.

List of migrate plugins

Writing your first Drupal migration

In the previous entry, we learned that the Migrate API is an implementation of an ETL framework. We also talked about the steps involved in writing and running migrations. Now, let’s write our first Drupal migration. We are going to start with a very basic example: creating nodes out of hardcoded data. For this, we assume a Drupal installation using the standard installation profile which comes with the Basic Page content type.

Seven fresh dough balls and a rolling pin.

Drupal migrations: Understanding the ETL process

The Migrate API is a very flexible and powerful system that allows you to collect data from different locations and store tham in Drupal— it is a full-blown extract, transform, and load (ETL) framework.

Diagram of the Digital Commons.

How Stewarding the Digital Commons Keeps Your Software Secure, Stable and Innovative

We live amidst a Digital Commons - technology that is built with the principles of freedom and transparency baked into its code and design.

Stylized silhouettes of a woman and a child with a magnifying glass.

Iterative UX: Find It Cambridge presentation notes

Here are links and notes from the presentation "Iterative UX: Find It Cambridge" (most recently given at Drupaldelphia).

City Hall located at the heart of Center City-Philadelphia,PA

Agaric is Coming to Drupaldelphia this Friday

Ben will be presenting two sessions at Drupaldelphia. Come learn how to apply an Iterative UX approach to your work and how to scale community decision-making in your free software projects.

" "

How to use behavior-driven development in Drupal with Behat

Test your Drupal site's functionality in a human-readable format. Behavior-driven development is a great way to write tests for code because it uses language that humans can understand. Let's see how to implement BDD in Drupal.

A graphic of the earth engulfed in flames.

Resources for how Drupal as a service can save our livelihoods and our lives

Ben spoke most recently on this topic at DrupalCon Seattle and Drupal Camp Twin Cities, both in 2019, about how Drupal as a Service can save our livelihoods and our lives.  Here are some resources related to the talk and topic.

Resources for scaling community decision-making

For those interested in Ben and Micky's talks at DrupalCon Seattle 2019 and New England Drupal Camp 2019, or who think they'd have been inspired if they'd been there, here are resources for scaling community conversations and decision-making.

Three beach shovels standing up in the sand next to a pail.

Just enough of a local Drupal development environment

In preparation for Agaric's latest migration training, we've seen again that getting a development environment suitable for working on Drupal with Composer is a big road block.  For that reason, here are instructions for getting it all going, suitable for our training or for working on Drupal in a code sprint, with only one hard requirement: PHP.

A black terminal with white text showing the command line prompt: >_

Getting started with the command line

The command line provides so much power.  We cover none of that power here, instead showing how to open the door—to open your terminal—on several operating systems.

People sharing a pizza.

Show and Tell with Agaric - Sharing Work with Other Coops

Agaric hosts a weekly Show and Tell to share tips and tricks, but this week we had a presentation on how cooperative developers can share work on projects.

Libre Planet 2019.

Micky Speaks at LibrePlanet on March 24th - How Can We Prevent the Orwellian 1984 Digital World?

Micky will talk about the movements fighting against the Orwellian reality we find ourselves in at LibrePlanet this Sunday.

Man's staring face besides the words "Big Brother is watching YOU"

Resources for Preventing the Digital World of Nineteen Eighty-Four

For those inspired by Micky's keynote at NERD Summit or LibrePlanet 2019, or who think they'd have been inspired if they'd been there, here are resources for working for a world, digital and non-digital, with freedom and personal power.