In this lesson we'll take a more in-depth look at the migrate module's UI with a focus on being able to identify and execute custom migrations. For now we'll work with the provided example migrations just so that we have something to work with. Throughout the lesson we'll learn how to run a migration to import it's data into Drupal, rollback a migration that was previously run in order to set a clean slate, and other ways we can interact with a migration via the UI. Then we'll discuss some of the challenges inherit in running migrations via the UI and Drupal's Batch API and how to identify them.
Additional resources
Release Day: Migrate Module Orientation
Blog postThis week, we are continuing our Importing Data With Migrate and Drupal 7 series, by getting oriented with the Migrate module. We take a look at two different ways of working with our migrations, through the UI and by using drush. Then we open up the Migrate example module to get an overview about what files are needed, and the main pieces of code used, to create a migration. This sets us up with a foundation to begin writing our own custom migration next week.
This lesson includes a short presentation that explains the basics terminology and architecture of the migrate module and the components that make up a custom data migration. We'll talk about the Extract / Transform / Load process and how it relates to data migrations, the types of data sources that the migration module can read from, and a little bit about how the code in both the migrate module and our own custom migrations will be organized.
Additional resources
In this lesson we'll cover downloading and installing the Migrate module (version 7.x-2.6) and ensuring that our local environment is ready to be able to run migrations via both the UI and drush. Once that's setup we'll take a high level look at the migrate module's UI and drush commands to familiarize ourselves with the tools that we'll be using throughout the rest of the series. This will also help formalize some of concepts introduced in the previous lesson.
Additional resources
Migrate module project page
migrate-7.x-2.6-rc1 download
Migrate module documentation
Introduction to Drush series
Drupalize.Me Migrate module series code on GitHub
This series is focused on using the Migrate module to import data that exists in various different sources into a Drupal 7 website. The Migrate module provides an extremely flexible and robust framework for accessing data from various sources and importing or migrating that data to Drupal. With built in support for creating core Drupal data types likes nodes, users, and taxonomy terms, the Migrate module is one of the best solutions available for importing content into Drupal.
This series kicks off with Joe Shindelar explaining the basic components that make up a data migration, and the terminology and code that is specific to the Migrate module. Then continues with a series of lessons that take you from installing the Migrate module to writing and running your own custom data migration.
Throughout the series Joe teaches us how to run a data migration using both the Migrate module's UI and drush, and some of the plusses and minuses of both methods. Joe also talks about the various different sources, or types of data, from which the Migrate module can read data and how to map the unique fields in a row of source data to their corresponding Drupal content types and fields.
By migrating from a single source into two different Drupal content types we'll also have the opportunity to learn about creating relationships during a migration and mapping the resulting information to an entity reference field. During the course of writing a custom migration Joe will show us how and where we can add code to perform additional runtime data munging during our import process. We'll learn about importing data into multi-value fields, and even providing defaults for fields that don't have information. Then we'll look at some of the tools the migrate module provides for collaborating with team members in order to create a successful migration path.
Finally we'll wrap up the series by looking at a couple of different techniques for debugging our migrations and dealing with pesky source material that just doesn't want to be imported.
Because this series is focused primarily on writing custom data migrations, and since the Migrate module itself requires at least some amount of code to be written to perform a migration, it is suggested that students be familiar with PHP and basic Object Oriented Programming techniques. Although not required to run a migration, Joe uses the drush command line tool extensively in this series. If you need a refresher on using drush take a moment to watch our drush series.
Additional resources
With so much data in so many places on the web, more and more site builders find that they need to get external data into their Drupal sites. It's a common problem with many ways to solve. One of the best ways to tackle this in Drupal is to use the Migrate module. The new Importing Data With Migrate and Drupal 7 series will teach you how to use the Migrate module to take data that exists in different source locations and import that into a Drupal 7 website.
This series taught you how to use two of Drupal’s fundamental “building block” modules: Field and Views. These modules constitute the cornerstone of Drupal’s power and are used extensively throughout the rest of the Using Drupal series. In this summary we'll take a tour the Epic University site we've built to discuss how we built it. We'll wrap things up with a review of the modules and resources we've covered in this series.
Additional resources
The basic job website that we’ve built only touches on the surface of the capability of Field and Views. There are a lot of possibilities for extending the functionality of this job site by adding more fields to both the Job and Job Application content types. In this lesson we'll review some other modules to explore:
- Automatic Node Titles
- Node Reference URL Widget
- Content Access
- Field Permissions
Additional resources
Today we are going to wrap things up on the Using Drupal Chapter 3: Job Board series. We've created a site that meets the Epic University requirements, and learned the fundamental building blocks of putting together a Drupal site. In our last two lessons we are going to look at modules we could use to make our site even better, and then we are going to do our final tour and review of the site we've built, looking at what we've done, and how we built it.
In Episode 25 of the Drupalize.Me Podcast, Kyle Hofmeyer takes time to gather some Lullabots to discuss "developer workflow".
With our basic Applications view built, we have our default display. We also need another faculty display on the site. This second list will be largely the same as the default list, but it needs to show up as a tab on a job posting node, and only list the applications which relate to that particular job. We're going to need to create a new display, and override certain settings, plus add in a contextual filter, in order to get this view completed.
Additional resources
In this lesson we tackle the last display we need for our Applications view, by building a block for our applicants. This has us creating a new type of display, a block, as well as continuing to work with overrides. We also have to change the permissions on this particular display so regular users can see it, but at the same time we only want the view to show a user their own applications.
Additional resources
The Applications view will serve both as a tool for administrators and as a reference for users, with three different displays. In this lesson, we'll start to build the Applications view by creating the default display with our first listing, which is a master list of all the applications on the site. To pull in all of the information we're going to need, we'll begin working with Views relationships.
Additional resources
We are getting close to completing our site in the Using Drupal Chapter 3: Job Board series. This week we are going to finish up our requirements by building out the Applications view. This view gets a little tricky though, because we need to create three very different displays, and control who has access to some of those displays. This means we'll be doing a lot of overrides in our different displays. We also get to work with Views relationships to pull even more information into our view.
You've probably heard of this magical land of version control where you can undo bad things, start over, and share your work effortlessly. It's a wonderful place that, let's face it, actually takes a bit of work to get to. It's a lot like Drupal: the more time you spend with version control, the more you forget how hard and complicated it was at the very beginning. And even when you understand it, you can still get yourself into a fuddle sometimes.
Supporting Open Source the Gittip Way
Blog postThere has been a lot of talk in the Drupal community recently about Gittip. Gittip is a way to donate money to people who are doing good work. The part that really makes Gittip different from other donation or crowd-funding plans is that it is set up to provide regular, weekly payments. One-time gifts are great, but a steady source of income is what a lot of people really need, especially folks who are mostly unemployed and working essentially for free on projects you care about. A few weeks back we had Alex Pott on the podcast (Episode 23: Alex Pott and Working on Drupal Core) to talk about his work, and the fact that he has been self-funding himself to be able to focus on Drupal core. We think this is a really, really important conversation in the Drupal community, and definitely recommend you listen to the podcast for more insight.
The Views module provides listings of data on your site: users, comments, nodes, and more. Any listing of data provided by the Views module is called a view, and most Drupal websites today use Views in many different ways. In this lesson we'll get an overview of the Views module, including some specific concepts and terminology like Data Types and Displays, along with a tour of the major view settings and what they do.
Additional resources
The requirements of our site include two different main views. One view is a public-facing list, showing all the available jobs to users of the site. In this lesson we'll create our first view by enabling the modules we need, walking through the Views wizard to get our basic view in place, and then modifying various settings for our fields and working with contextual filters.
Additional resources
Release Day: Using the Views Module
Blog postIn this week's installment of the Using Drupal Chapter 3: Job Board series, we get into the world of Views. The Views module is the most used contributed module in Drupal 7. It is so popular in fact, that it has been included in core for Drupal 8. Views lets us list content on our site. It can be used to accomplish so many tasks when it comes to building your site that you really do need a good foundation with this to understand many Drupal site-building concepts.
Podcast Episode 24: Coderdojo and Drupal
Blog postIn Episode 24 of the Drupalize.Me podcast, Addi is joined by Bill Liao, co-founder of CoderDojo, and Drupalers and CoderDojo volunteers Heather James (heather) and Mike King (emkay).