diff --git a/migrations/recipe713_ingredient_field_display.yml b/migrations/recipe713_ingredient_field_display.yml
new file mode 100644
index 0000000..d5aa2a8
--- /dev/null
+++ b/migrations/recipe713_ingredient_field_display.yml
@@ -0,0 +1,19 @@
+id: recipe713_ingredient_field_display
+label: Ingredient field display configuration
+migration_tags:
+  - Drupal 7
+source:
+  plugin: variable
+  variables:
+    - recipe_fraction_display
+    - recipe_unit_display
+  source_module: recipe
+  constants:
+    id: node.recipe.default
+process:
+  id: 'constants/id'
+  'content/recipe_ingredient/settings/fraction_format': recipe_fraction_display
+  'content/recipe_ingredient/settings/unit_display': recipe_unit_display
+destination:
+  plugin: entity:entity_view_display
+migration_dependencies: {  }
diff --git a/migrations/recipe713_ingredient_field_instance.yml b/migrations/recipe713_ingredient_field_instance.yml
new file mode 100644
index 0000000..e8bf5ae
--- /dev/null
+++ b/migrations/recipe713_ingredient_field_instance.yml
@@ -0,0 +1,17 @@
+id: recipe713_ingredient_field_instance
+label: Ingredient field instance configuration
+migration_tags:
+  - Drupal 7
+source:
+  plugin: variable
+  variables:
+    - recipe_default_unit
+  source_module: recipe
+  constants:
+    id: node.recipe.recipe_ingredient
+process:
+  id: 'constants/id'
+  'settings/default_unit': recipe_default_unit
+destination:
+  plugin: entity:field_config
+migration_dependencies: {  }
diff --git a/migrations/recipe713_recipe.yml b/migrations/recipe713_recipe.yml
new file mode 100644
index 0000000..077d8f8
--- /dev/null
+++ b/migrations/recipe713_recipe.yml
@@ -0,0 +1,35 @@
+id: recipe713_recipe
+label: Recipe data
+migration_tags:
+  - Drupal 7
+source:
+  plugin: recipe713_recipe
+process:
+  nid: tnid
+  langcode:
+    plugin: default_value
+    source: language
+    default_value: "und"
+  recipe_cook_time: cooktime
+  recipe_description: description
+  recipe_ingredient:
+    plugin: iterator
+    source: ingredients
+    process:
+      delta: weight
+      target_id: ingredient_id
+      unit_key: unit_key
+      quantity: quantity
+      note: note
+  recipe_instructions: instructions
+  recipe_notes: notes
+  recipe_prep_time: preptime
+  recipe_source: source
+  recipe_yield_amount: yield
+  recipe_yield_unit: yield_unit
+destination:
+  plugin: entity:node
+migration_dependencies:
+  required:
+    - d7_node
+    - recipe713_ingredient
diff --git a/migrations/recipe713_recipe_translation.yml b/migrations/recipe713_recipe_translation.yml
new file mode 100644
index 0000000..95dcd33
--- /dev/null
+++ b/migrations/recipe713_recipe_translation.yml
@@ -0,0 +1,40 @@
+id: recipe713_recipe_translation
+label: Recipe data
+migration_tags:
+  - Drupal 7
+source:
+  plugin: recipe713_recipe
+  translations: true
+  source_module: translation
+process:
+  nid: tnid
+  langcode:
+    plugin: default_value
+    source: language
+    default_value: "und"
+  recipe_cook_time: cooktime
+  recipe_description: description
+  recipe_ingredient:
+    plugin: iterator
+    source: ingredients
+    process:
+      delta: weight
+      target_id: ingredient_id
+      unit_key: unit_key
+      quantity: quantity
+      note: note
+  recipe_instructions: instructions
+  recipe_notes: notes
+  recipe_prep_time: preptime
+  recipe_source: source
+  recipe_yield_amount: yield
+  recipe_yield_unit: yield_unit
+destination:
+  plugin: entity:node
+  translations: true
+  destination_module: content_translation
+migration_dependencies:
+  required:
+    - d7_node
+    - language
+    - recipe713_ingredient
diff --git a/modules/ingredient/migrations/recipe713_ingredient.yml b/modules/ingredient/migrations/recipe713_ingredient.yml
new file mode 100644
index 0000000..dd89f32
--- /dev/null
+++ b/modules/ingredient/migrations/recipe713_ingredient.yml
@@ -0,0 +1,12 @@
+id: recipe713_ingredient
+label: Ingredients
+migration_tags:
+  - Drupal 7
+source:
+  plugin: recipe713_ingredient
+process:
+  id: id
+  name: name
+destination:
+  plugin: entity:ingredient
+migration_dependencies: {  }
diff --git a/modules/ingredient/migrations/recipe713_ingredient_settings.yml b/modules/ingredient/migrations/recipe713_ingredient_settings.yml
new file mode 100644
index 0000000..ca11aef
--- /dev/null
+++ b/modules/ingredient/migrations/recipe713_ingredient_settings.yml
@@ -0,0 +1,14 @@
+id: recipe713_ingredient_settings
+label: Ingredient configuration
+migration_tags:
+  - Drupal 7
+source:
+  plugin: variable
+  variables:
+    - recipe_ingredient_name_normalize
+  source_module: recipe
+process:
+  ingredient_name_normalize: recipe_ingredient_name_normalize
+destination:
+  plugin: config
+  config_name: ingredient.settings
diff --git a/modules/ingredient/src/Plugin/migrate/destination/EntityIngredient.php b/modules/ingredient/src/Plugin/migrate/destination/EntityIngredient.php
new file mode 100644
index 0000000..68548c5
--- /dev/null
+++ b/modules/ingredient/src/Plugin/migrate/destination/EntityIngredient.php
@@ -0,0 +1,12 @@
+<?php
+
+namespace Drupal\ingredient\Plugin\migrate\destination;
+
+use Drupal\migrate\Plugin\migrate\destination\EntityContentBase;
+
+/**
+ * @MigrateDestination(
+ *   id = "entity:ingredient"
+ * )
+ */
+class EntityIngredient extends EntityContentBase {}
diff --git a/modules/ingredient/src/Plugin/migrate/source/recipe713/Ingredient.php b/modules/ingredient/src/Plugin/migrate/source/recipe713/Ingredient.php
new file mode 100644
index 0000000..4d5b890
--- /dev/null
+++ b/modules/ingredient/src/Plugin/migrate/source/recipe713/Ingredient.php
@@ -0,0 +1,43 @@
+<?php
+
+namespace Drupal\ingredient\Plugin\migrate\source\recipe713;
+
+use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
+
+/**
+ * Drupal 7 ingredient source from database.
+ *
+ * @MigrateSource(
+ *   id = "recipe713_ingredient",
+ *   source_module = "recipe"
+ * )
+ */
+class Ingredient extends DrupalSqlBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function query() {
+    return $this->select('recipe_ingredient', 'i')
+      ->fields('i', ['id', 'name'])
+      ->orderBy('i.id');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fields() {
+    return [
+      'id' => $this->t('Ingredient ID'),
+      'name' => $this->t('Ingredient name'),
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getIds() {
+    return ['id' => ['type' => 'integer']];
+  }
+
+}
diff --git a/modules/ingredient/tests/fixtures/ingredient713.php b/modules/ingredient/tests/fixtures/ingredient713.php
new file mode 100644
index 0000000..58ec1f2
--- /dev/null
+++ b/modules/ingredient/tests/fixtures/ingredient713.php
@@ -0,0 +1,265 @@
+<?php
+// @codingStandardsIgnoreFile
+/**
+ * @file
+ * A database agnostic dump for testing purposes.
+ *
+ * This file was generated by the Drupal 8.0 db-tools.php script.
+ */
+
+use Drupal\Core\Database\Database;
+
+$connection = Database::getConnection();
+$connection->schema()->createTable('recipe_ingredient', array(
+  'fields' => array(
+    'id' => array(
+      'type' => 'serial',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'name' => array(
+      'type' => 'varchar',
+      'not null' => FALSE,
+      'length' => '255',
+    ),
+    'link' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+  ),
+  'primary key' => array(
+    'id',
+  ),
+  'mysql_character_set' => 'utf8mb4',
+));
+
+$connection->insert('recipe_ingredient')
+  ->fields(array(
+    'id',
+    'name',
+    'link',
+  ))
+  ->values(array(
+    'id' => '1',
+    'name' => 'water',
+    'link' => '0',
+  ))
+  ->values(array(
+    'id' => '2',
+    'name' => 'salt',
+    'link' => '0',
+  ))
+  ->execute();
+
+$connection->schema()->createTable('recipe_node_ingredient', array(
+  'fields' => array(
+    'id' => array(
+      'type' => 'serial',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'nid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'unit_key' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'quantity' => array(
+      'type' => 'float',
+      'not null' => FALSE,
+      'size' => 'normal',
+    ),
+    'ingredient_id' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'weight' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'note' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+  ),
+  'primary key' => array(
+    'id',
+  ),
+  'mysql_character_set' => 'utf8mb4',
+));
+
+$connection->insert('recipe_node_ingredient')
+  ->fields(array(
+    'id',
+    'nid',
+    'unit_key',
+    'quantity',
+    'ingredient_id',
+    'weight',
+    'note',
+  ))
+  ->values(array(
+    'id' => '1',
+    'nid' => '1',
+    'unit_key' => 'cup',
+    'quantity' => '2',
+    'ingredient_id' => '1',
+    'weight' => '0',
+    'note' => 'cold',
+  ))
+  ->values(array(
+    'id' => '2',
+    'nid' => '1',
+    'unit_key' => 'tablespoon',
+    'quantity' => '1',
+    'ingredient_id' => '2',
+    'weight' => '1',
+    'note' => '',
+  ))
+  ->execute();
+
+$connection->schema()->createTable('system', array(
+  'fields' => array(
+    'filename' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'name' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'type' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '12',
+      'default' => '',
+    ),
+    'owner' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'status' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'bootstrap' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'schema_version' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '-1',
+    ),
+    'weight' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'info' => array(
+      'type' => 'blob',
+      'not null' => FALSE,
+      'size' => 'normal',
+    ),
+  ),
+  'primary key' => array(
+    'filename',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('system')
+  ->fields(array(
+    'filename',
+    'name',
+    'type',
+    'owner',
+    'status',
+    'bootstrap',
+    'schema_version',
+    'weight',
+    'info',
+  ))
+  ->values(array(
+    'filename' => 'sites/default/modules/recipe/recipe.module',
+    'name' => 'recipe',
+    'type' => 'module',
+    'owner' => '',
+    'status' => '1',
+    'bootstrap' => '0',
+    'schema_version' => '7004',
+    'weight' => '0',
+    'info' => 'a:11:{s:4:"name";s:6:"Recipe";s:11:"description";s:28:"Collect and display recipes.";s:7:"package";s:6:"Recipe";s:4:"core";s:3:"7.x";s:7:"version";s:7:"7.x-1.3";s:7:"project";s:6:"recipe";s:9:"datestamp";s:10:"1335415286";s:12:"dependencies";a:0:{}s:3:"php";s:5:"5.2.4";s:5:"files";a:0:{}s:9:"bootstrap";i:0;}',
+  ))
+  ->execute();
+
+$connection->schema()->createTable('variable', array(
+  'fields' => array(
+    'name' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '128',
+      'default' => '',
+    ),
+    'value' => array(
+      'type' => 'blob',
+      'not null' => TRUE,
+      'size' => 'normal',
+    ),
+  ),
+  'primary key' => array(
+    'name',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('variable')
+  ->fields(array(
+    'name',
+    'value',
+  ))
+  ->values(array(
+    'name' => 'recipe_default_unit',
+    'value' => 's:0:"";',
+  ))
+  ->values(array(
+    'name' => 'recipe_fraction_display',
+    'value' => 's:16:"{%d }%d&frasl;%d";',
+  ))
+  ->values(array(
+    'name' => 'recipe_ingredient_name_normalize',
+    'value' => 's:1:"1";',
+  ))
+  ->values(array(
+    'name' => 'recipe_unit_display',
+    'value' => 's:1:"0";',
+  ))
+  ->execute();
diff --git a/modules/ingredient/tests/src/Kernel/Migrate/recipe713/MigrateIngredient713TestBase.php b/modules/ingredient/tests/src/Kernel/Migrate/recipe713/MigrateIngredient713TestBase.php
new file mode 100644
index 0000000..49624b6
--- /dev/null
+++ b/modules/ingredient/tests/src/Kernel/Migrate/recipe713/MigrateIngredient713TestBase.php
@@ -0,0 +1,19 @@
+<?php
+
+namespace Drupal\Tests\ingredient\Kernel\Migrate\recipe713;
+
+use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
+
+/**
+ * Provides a base class for Ingredient migrations from Recipe 7.x-1.3.
+ */
+abstract class MigrateIngredient713TestBase extends MigrateDrupal7TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function getFixtureFilePath() {
+    return __DIR__ . '/../../../../fixtures/ingredient713.php';
+  }
+
+}
diff --git a/modules/ingredient/tests/src/Kernel/Migrate/recipe713/MigrateIngredientSettingsTest.php b/modules/ingredient/tests/src/Kernel/Migrate/recipe713/MigrateIngredientSettingsTest.php
new file mode 100644
index 0000000..ed74568
--- /dev/null
+++ b/modules/ingredient/tests/src/Kernel/Migrate/recipe713/MigrateIngredientSettingsTest.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace Drupal\Tests\ingredient\Kernel\Migrate\recipe713;
+
+/**
+ * Tests migration of Recipe's ingredient variables to configuration.
+ *
+ * @group recipe
+ */
+class MigrateIngredientSettingsTest extends MigrateIngredient713TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['ingredient'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installConfig(static::$modules);
+    $this->executeMigrations(['recipe713_ingredient_settings']);
+  }
+
+  /**
+   * Tests migration of ingredient variables to configuration.
+   */
+  public function testMigration() {
+    $config = \Drupal::config('ingredient.settings')->get();
+    $this->assertSame(1, $config['ingredient_name_normalize']);
+  }
+
+}
diff --git a/modules/ingredient/tests/src/Kernel/Migrate/recipe713/MigrateIngredientTest.php b/modules/ingredient/tests/src/Kernel/Migrate/recipe713/MigrateIngredientTest.php
new file mode 100644
index 0000000..a90bf53
--- /dev/null
+++ b/modules/ingredient/tests/src/Kernel/Migrate/recipe713/MigrateIngredientTest.php
@@ -0,0 +1,60 @@
+<?php
+
+namespace Drupal\Tests\ingredient\Kernel\Migrate\recipe713;
+
+use Drupal\Core\Database\Database;
+use Drupal\ingredient\Entity\Ingredient;
+use Drupal\ingredient\IngredientInterface;
+
+/**
+ * Ingredients migration.
+ *
+ * @group recipe
+ */
+class MigrateIngredientTest extends MigrateIngredient713TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['ingredient'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installEntitySchema('ingredient');
+    $this->executeMigrations(['recipe713_ingredient']);
+  }
+
+  /**
+   * Asserts various aspects of an ingredient.
+   *
+   * @param string $id
+   *   The ingredient ID.
+   * @param string $label
+   *   The ingredient name.
+   */
+  protected function assertEntity($id, $label) {
+    /** @var \Drupal\ingredient\IngredientInterface $ingredient */
+    $ingredient = Ingredient::load($id);
+    $this->assertTrue($ingredient instanceof IngredientInterface);
+    $this->assertSame($label, $ingredient->label());
+  }
+
+  /**
+   * Tests the Drupal 7 ingredient to Drupal 8 migration.
+   */
+  public function testIngredient() {
+    $ingredients = Database::getConnection('default', 'migrate')
+      ->select('recipe_ingredient', 'i')
+      ->fields('i')
+      ->execute()
+      ->fetchAll();
+
+    foreach ($ingredients as $source) {
+      $this->assertEntity($source->id, $source->name);
+    }
+  }
+
+}
diff --git a/src/Plugin/migrate/source/recipe713/Recipe.php b/src/Plugin/migrate/source/recipe713/Recipe.php
new file mode 100644
index 0000000..d18b419
--- /dev/null
+++ b/src/Plugin/migrate/source/recipe713/Recipe.php
@@ -0,0 +1,101 @@
+<?php
+
+namespace Drupal\recipe\Plugin\migrate\source\recipe713;
+
+use Drupal\Core\Database\Query\SelectInterface;
+use Drupal\migrate\Row;
+use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
+
+/**
+ * Drupal 7 recipe source from database.
+ *
+ * @MigrateSource(
+ *   id = "recipe713_recipe",
+ *   source_module = "recipe"
+ * )
+ */
+class Recipe extends DrupalSqlBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function query() {
+    $query = $this->select('recipe', 'r')
+      ->fields('r')
+      ->orderBy('r.nid');
+    $query->join('node', 'n','r.nid = n.nid');
+    $query->fields('n', ['tnid', 'language']);
+    $this->handleTranslations($query);
+    return $query;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function prepareRow(Row $row) {
+    // Select the ingredient reference data and add it to the row.
+    $query = $this->select('recipe_node_ingredient', 'i')
+      ->fields('i')
+      ->condition('nid', $row->getSourceProperty('nid'))
+      ->orderBy('weight', 'ASC');
+    $results = $query->execute();
+    $ingredients = [];
+    foreach ($results as $result) {
+      $ingredients[] = $result;
+    }
+    $row->setSourceProperty('ingredients', $ingredients);
+
+    // Make sure we always have a translation set.
+    if ($row->getSourceProperty('tnid') == 0) {
+      $row->setSourceProperty('tnid', $row->getSourceProperty('nid'));
+    }
+
+    return parent::prepareRow($row);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fields() {
+    return [
+      'nid' => $this->t('Recipe node ID'),
+      'tnid' => $this->t('The translation node ID'),
+      'source' => $this->t('Recipe source'),
+      'yield' => $this->t('Recipe yield amount'),
+      'yield_unit' => $this->t('Units of the recipe yield'),
+      'description' => $this->t('Recipe description'),
+      'instructions' => $this->t('Recipe instructions'),
+      'notes' => $this->t('Recipe notes'),
+      'preptime' => $this->t('Recipe preparation time'),
+      'cooktime' => $this->t('Recipe cook time'),
+      'ingredients' => $this->t('Recipe ingredients, measures, and notes'),
+      'language' => $this->t('Node language'),
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getIds() {
+    return ['nid' => ['type' => 'integer', 'alias' => 'r']];
+  }
+
+  /**
+   * Adapt our query for translations.
+   *
+   * @param \Drupal\Core\Database\Query\SelectInterface $query
+   *   The generated query.
+   */
+  protected function handleTranslations(SelectInterface $query) {
+    // Check whether or not we want translations.
+    if (empty($this->configuration['translations'])) {
+      // No translations: Yield untranslated nodes, or default translations.
+      $query->where('n.tnid = 0 OR n.tnid = n.nid');
+    }
+    else {
+      // Translations: Yield only non-default translations.
+      $query->where('n.tnid <> 0 AND n.tnid <> n.nid');
+    }
+  }
+
+}
diff --git a/tests/fixtures/recipe713.php b/tests/fixtures/recipe713.php
new file mode 100644
index 0000000..ccfd52d
--- /dev/null
+++ b/tests/fixtures/recipe713.php
@@ -0,0 +1,1402 @@
+<?php
+// @codingStandardsIgnoreFile
+/**
+ * @file
+ * A database agnostic dump for testing purposes.
+ *
+ * This file was generated by the Drupal 8.0 db-tools.php script.
+ */
+
+use Drupal\Core\Database\Database;
+
+$connection = Database::getConnection();
+$connection->schema()->createTable('field_config', array(
+  'fields' => array(
+    'id' => array(
+      'type' => 'serial',
+      'not null' => TRUE,
+      'size' => 'normal',
+    ),
+    'field_name' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '32',
+    ),
+    'type' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '128',
+    ),
+    'module' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '128',
+      'default' => '',
+    ),
+    'active' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'storage_type' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '128',
+    ),
+    'storage_module' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '128',
+      'default' => '',
+    ),
+    'storage_active' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'locked' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'data' => array(
+      'type' => 'blob',
+      'not null' => TRUE,
+      'size' => 'normal',
+    ),
+    'cardinality' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'translatable' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'deleted' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+  ),
+  'primary key' => array(
+    'id',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->schema()->createTable('field_config_instance', array(
+  'fields' => array(
+    'id' => array(
+      'type' => 'serial',
+      'not null' => TRUE,
+      'size' => 'normal',
+    ),
+    'field_id' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+    ),
+    'field_name' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '32',
+      'default' => '',
+    ),
+    'entity_type' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '32',
+      'default' => '',
+    ),
+    'bundle' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '128',
+      'default' => '',
+    ),
+    'data' => array(
+      'type' => 'blob',
+      'not null' => TRUE,
+      'size' => 'normal',
+    ),
+    'deleted' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+  ),
+  'primary key' => array(
+    'id',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->schema()->createTable('languages', array(
+  'fields' => array(
+    'language' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '12',
+      'default' => '',
+    ),
+    'name' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '64',
+      'default' => '',
+    ),
+    'native' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '64',
+      'default' => '',
+    ),
+    'direction' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'enabled' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'plurals' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'formula' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'domain' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '128',
+      'default' => '',
+    ),
+    'prefix' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '128',
+      'default' => '',
+    ),
+    'weight' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'javascript' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '64',
+      'default' => '',
+    ),
+  ),
+  'primary key' => array(
+    'language',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('languages')
+  ->fields(array(
+    'language',
+    'name',
+    'native',
+    'direction',
+    'enabled',
+    'plurals',
+    'formula',
+    'domain',
+    'prefix',
+    'weight',
+    'javascript',
+  ))
+  ->values(array(
+    'language' => 'en',
+    'name' => 'English',
+    'native' => 'English',
+    'direction' => '0',
+    'enabled' => '1',
+    'plurals' => '0',
+    'formula' => '',
+    'domain' => '',
+    'prefix' => '',
+    'weight' => '0',
+    'javascript' => '',
+  ))
+  ->values(array(
+    'language' => 'is',
+    'name' => 'Icelandic',
+    'native' => 'Íslenska',
+    'direction' => '0',
+    'enabled' => '1',
+    'plurals' => '0',
+    'formula' => '',
+    'domain' => 'is.drupal.org',
+    'prefix' => 'is',
+    'weight' => '0',
+    'javascript' => '',
+  ))
+  ->execute();
+
+$connection->schema()->createTable('node', array(
+  'fields' => array(
+    'nid' => array(
+      'type' => 'serial',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'vid' => array(
+      'type' => 'int',
+      'not null' => FALSE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'type' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '32',
+      'default' => '',
+    ),
+    'language' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '12',
+      'default' => '',
+    ),
+    'title' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'uid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'status' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '1',
+    ),
+    'created' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'changed' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'comment' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'promote' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'sticky' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'tnid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+      'unsigned' => TRUE,
+    ),
+    'translate' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+  ),
+  'primary key' => array(
+    'nid',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('node')
+->fields(array(
+  'nid',
+  'vid',
+  'type',
+  'language',
+  'title',
+  'uid',
+  'status',
+  'created',
+  'changed',
+  'comment',
+  'promote',
+  'sticky',
+  'tnid',
+  'translate',
+))
+->values(array(
+  'nid' => '1',
+  'vid' => '1',
+  'type' => 'recipe',
+  'language' => 'und',
+  'title' => 'Salt water',
+  'uid' => '1',
+  'status' => '1',
+  'created' => '1372914408',
+  'changed' => '1372914408',
+  'comment' => '2',
+  'promote' => '1',
+  'sticky' => '0',
+  'tnid' => '0',
+  'translate' => '0',
+))
+->values(array(
+  'nid' => '2',
+  'vid' => '2',
+  'type' => 'recipe',
+  'language' => 'en',
+  'title' => 'English recipe',
+  'uid' => '1',
+  'status' => '1',
+  'created' => '1372914408',
+  'changed' => '1372914408',
+  'comment' => '2',
+  'promote' => '1',
+  'sticky' => '0',
+  'tnid' => '2',
+  'translate' => '0',
+))
+->values(array(
+  'nid' => '3',
+  'vid' => '3',
+  'type' => 'recipe',
+  'language' => 'is',
+  'title' => 'Islandic recipe',
+  'uid' => '1',
+  'status' => '1',
+  'created' => '1372914408',
+  'changed' => '1372914408',
+  'comment' => '2',
+  'promote' => '1',
+  'sticky' => '0',
+  'tnid' => '2',
+  'translate' => '0',
+))
+->execute();
+
+$connection->schema()->createTable('node_comment_statistics', array(
+  'fields' => array(
+    'nid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+      'unsigned' => TRUE,
+    ),
+    'cid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'last_comment_timestamp' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'last_comment_name' => array(
+      'type' => 'varchar',
+      'not null' => FALSE,
+      'length' => '60',
+    ),
+    'last_comment_uid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'comment_count' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+      'unsigned' => TRUE,
+    ),
+  ),
+  'primary key' => array(
+    'nid',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('node_comment_statistics')
+->fields(array(
+  'nid',
+  'cid',
+  'last_comment_timestamp',
+  'last_comment_name',
+  'last_comment_uid',
+  'comment_count',
+))
+->values(array(
+  'nid' => '1',
+  'cid' => '0',
+  'last_comment_timestamp' => '1372914408',
+  'last_comment_name' => NULL,
+  'last_comment_uid' => '1',
+  'comment_count' => '0',
+))
+->values(array(
+  'nid' => '2',
+  'cid' => '0',
+  'last_comment_timestamp' => '1372914408',
+  'last_comment_name' => NULL,
+  'last_comment_uid' => '1',
+  'comment_count' => '0',
+))
+->values(array(
+  'nid' => '3',
+  'cid' => '0',
+  'last_comment_timestamp' => '1372914408',
+  'last_comment_name' => NULL,
+  'last_comment_uid' => '1',
+  'comment_count' => '0',
+))
+->execute();
+
+$connection->schema()->createTable('node_revision', array(
+  'fields' => array(
+    'nid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+      'unsigned' => TRUE,
+    ),
+    'vid' => array(
+      'type' => 'serial',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'uid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'title' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'log' => array(
+      'type' => 'text',
+      'not null' => TRUE,
+      'size' => 'normal',
+    ),
+    'timestamp' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'status' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '1',
+    ),
+    'comment' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'promote' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'sticky' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+  ),
+  'primary key' => array(
+    'vid',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('node_revision')
+->fields(array(
+  'nid',
+  'vid',
+  'uid',
+  'title',
+  'log',
+  'timestamp',
+  'status',
+  'comment',
+  'promote',
+  'sticky',
+))
+->values(array(
+  'nid' => '1',
+  'vid' => '1',
+  'uid' => '1',
+  'title' => 'Salt water',
+  'log' => '',
+  'timestamp' => '1372914408',
+  'status' => '1',
+  'comment' => '2',
+  'promote' => '1',
+  'sticky' => '0',
+))
+->values(array(
+  'nid' => '2',
+  'vid' => '2',
+  'uid' => '1',
+  'title' => 'English recipe',
+  'log' => '',
+  'timestamp' => '1372914408',
+  'status' => '1',
+  'comment' => '2',
+  'promote' => '1',
+  'sticky' => '0',
+))
+->values(array(
+  'nid' => '3',
+  'vid' => '3',
+  'uid' => '1',
+  'title' => 'Islandic recipe',
+  'log' => '',
+  'timestamp' => '1372914408',
+  'status' => '1',
+  'comment' => '2',
+  'promote' => '1',
+  'sticky' => '0',
+))
+->execute();
+
+$connection->schema()->createTable('node_type', array(
+  'fields' => array(
+    'type' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '32',
+    ),
+    'name' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'base' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+    ),
+    'module' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+    ),
+    'description' => array(
+      'type' => 'text',
+      'not null' => TRUE,
+      'size' => 'normal',
+    ),
+    'help' => array(
+      'type' => 'text',
+      'not null' => TRUE,
+      'size' => 'normal',
+    ),
+    'has_title' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'title_label' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'custom' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'modified' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'locked' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'disabled' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'orig_type' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+  ),
+  'primary key' => array(
+    'type',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('node_type')
+->fields(array(
+  'type',
+  'name',
+  'base',
+  'module',
+  'description',
+  'help',
+  'has_title',
+  'title_label',
+  'custom',
+  'modified',
+  'locked',
+  'disabled',
+  'orig_type',
+))
+->values(array(
+  'type' => 'recipe',
+  'name' => 'Recipe',
+  'base' => 'recipe',
+  'module' => 'recipe',
+  'description' => 'Share your favorite recipes with your fellow cooks.',
+  'help' => '',
+  'has_title' => '1',
+  'title_label' => 'Title',
+  'custom' => '0',
+  'modified' => '0',
+  'locked' => '1',
+  'disabled' => '0',
+  'orig_type' => 'recipe',
+))
+->execute();
+
+$connection->schema()->createTable('recipe', array(
+  'fields' => array(
+    'nid' => array(
+      'type' => 'serial',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'source' => array(
+      'type' => 'varchar',
+      'not null' => FALSE,
+      'length' => '255',
+    ),
+    'yield' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+    ),
+    'yield_unit' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '64',
+      'default' => '',
+    ),
+    'description' => array(
+      'type' => 'text',
+      'not null' => FALSE,
+      'size' => 'normal',
+    ),
+    'instructions' => array(
+      'type' => 'text',
+      'not null' => FALSE,
+      'size' => 'normal',
+    ),
+    'notes' => array(
+      'type' => 'text',
+      'not null' => FALSE,
+      'size' => 'normal',
+    ),
+    'preptime' => array(
+      'type' => 'int',
+      'not null' => FALSE,
+      'size' => 'normal',
+      'default' => '0',
+      'unsigned' => TRUE,
+    ),
+    'cooktime' => array(
+      'type' => 'int',
+      'not null' => FALSE,
+      'size' => 'normal',
+      'default' => '0',
+      'unsigned' => TRUE,
+    ),
+  ),
+  'primary key' => array(
+    'nid',
+  ),
+  'mysql_character_set' => 'utf8mb4',
+));
+
+$connection->insert('recipe')
+->fields(array(
+  'nid',
+  'source',
+  'yield',
+  'yield_unit',
+  'description',
+  'instructions',
+  'notes',
+  'preptime',
+  'cooktime',
+))
+->values(array(
+  'nid' => '1',
+  'source' => 'John Doe',
+  'yield' => '1',
+  'yield_unit' => 'Servings',
+  'description' => 'Basic salt water.',
+  'instructions' => "Combine water and salt in a glass.\r\n\r\nStir.",
+  'notes' => 'Do not consume!',
+  'preptime' => '1',
+  'cooktime' => '2',
+))
+->values(array(
+  'nid' => '2',
+  'source' => 'John Doe',
+  'yield' => '1',
+  'yield_unit' => 'Servings',
+  'description' => 'A test recipe with English set as the language.',
+  'instructions' => "Example instructions.",
+  'notes' => 'Example notes.',
+  'preptime' => '1',
+  'cooktime' => '2',
+))
+->values(array(
+  'nid' => '3',
+  'source' => 'Johann Doe',
+  'yield' => '1',
+  'yield_unit' => 'Servings',
+  'description' => 'A test recipe with Islandic set as the language.',
+  'instructions' => "Islandic instructions.",
+  'notes' => 'Islandic notes.',
+  'preptime' => '1',
+  'cooktime' => '2',
+))
+->execute();
+
+$connection->schema()->createTable('recipe_ingredient', array(
+  'fields' => array(
+    'id' => array(
+      'type' => 'serial',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'name' => array(
+      'type' => 'varchar',
+      'not null' => FALSE,
+      'length' => '255',
+    ),
+    'link' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+  ),
+  'primary key' => array(
+    'id',
+  ),
+  'mysql_character_set' => 'utf8mb4',
+));
+
+$connection->insert('recipe_ingredient')
+->fields(array(
+  'id',
+  'name',
+  'link',
+))
+->values(array(
+  'id' => '1',
+  'name' => 'water',
+  'link' => '0',
+))
+->values(array(
+  'id' => '2',
+  'name' => 'salt',
+  'link' => '0',
+))
+->execute();
+
+$connection->schema()->createTable('recipe_node_ingredient', array(
+  'fields' => array(
+    'id' => array(
+      'type' => 'serial',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'nid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'unit_key' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'quantity' => array(
+      'type' => 'float',
+      'not null' => FALSE,
+      'size' => 'normal',
+    ),
+    'ingredient_id' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'weight' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'note' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+  ),
+  'primary key' => array(
+    'id',
+  ),
+  'mysql_character_set' => 'utf8mb4',
+));
+
+$connection->insert('recipe_node_ingredient')
+->fields(array(
+  'id',
+  'nid',
+  'unit_key',
+  'quantity',
+  'ingredient_id',
+  'weight',
+  'note',
+))
+->values(array(
+  'id' => '1',
+  'nid' => '1',
+  'unit_key' => 'cup',
+  'quantity' => '2',
+  'ingredient_id' => '1',
+  'weight' => '0',
+  'note' => 'cold',
+))
+->values(array(
+  'id' => '2',
+  'nid' => '1',
+  'unit_key' => 'tablespoon',
+  'quantity' => '1',
+  'ingredient_id' => '2',
+  'weight' => '1',
+  'note' => '',
+))
+->values(array(
+  'id' => '3',
+  'nid' => '2',
+  'unit_key' => 'cup',
+  'quantity' => '2',
+  'ingredient_id' => '1',
+  'weight' => '0',
+  'note' => 'cold',
+))
+->values(array(
+  'id' => '4',
+  'nid' => '3',
+  'unit_key' => 'cup',
+  'quantity' => '2',
+  'ingredient_id' => '1',
+  'weight' => '0',
+  'note' => 'cold',
+))
+->execute();
+
+$connection->schema()->createTable('role', array(
+  'fields' => array(
+    'rid' => array(
+      'type' => 'serial',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'name' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '64',
+      'default' => '',
+    ),
+    'weight' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+  ),
+  'primary key' => array(
+    'rid',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('role')
+->fields(array(
+  'rid',
+  'name',
+  'weight',
+))
+->values(array(
+  'rid' => '1',
+  'name' => 'anonymous user',
+  'weight' => '0',
+))
+->values(array(
+  'rid' => '2',
+  'name' => 'authenticated user',
+  'weight' => '1',
+))
+->values(array(
+  'rid' => '3',
+  'name' => 'administrator',
+  'weight' => '2',
+))
+->execute();
+
+$connection->schema()->createTable('role_permission', array(
+  'fields' => array(
+    'rid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'permission' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '128',
+      'default' => '',
+    ),
+    'module' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+  ),
+  'primary key' => array(
+    'rid',
+    'permission',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->schema()->createTable('system', array(
+  'fields' => array(
+    'filename' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'name' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'type' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '12',
+      'default' => '',
+    ),
+    'owner' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'status' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'bootstrap' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'schema_version' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '-1',
+    ),
+    'weight' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'info' => array(
+      'type' => 'blob',
+      'not null' => FALSE,
+      'size' => 'normal',
+    ),
+  ),
+  'primary key' => array(
+    'filename',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('system')
+->fields(array(
+  'filename',
+  'name',
+  'type',
+  'owner',
+  'status',
+  'bootstrap',
+  'schema_version',
+  'weight',
+  'info',
+))
+->values(array(
+  'filename' => 'modules/locale/locale.module',
+  'name' => 'locale',
+  'type' => 'module',
+  'owner' => '',
+  'status' => '1',
+  'bootstrap' => '0',
+  'schema_version' => '7005',
+  'weight' => '0',
+  'info' => 'a:13:{s:4:"name";s:6:"Locale";s:11:"description";s:119:"Adds language handling functionality and enables the translation of the user interface to languages other than English.";s:7:"package";s:4:"Core";s:7:"version";s:4:"7.40";s:4:"core";s:3:"7.x";s:5:"files";a:1:{i:0;s:11:"locale.test";}s:9:"configure";s:30:"admin/config/regional/language";s:7:"project";s:6:"drupal";s:9:"datestamp";s:10:"1444866674";s:5:"mtime";i:1444866674;s:12:"dependencies";a:0:{}s:3:"php";s:5:"5.2.4";s:9:"bootstrap";i:0;}',
+))
+->values(array(
+  'filename' => 'modules/node/node.module',
+  'name' => 'node',
+  'type' => 'module',
+  'owner' => '',
+  'status' => '1',
+  'bootstrap' => '0',
+  'schema_version' => '7015',
+  'weight' => '0',
+  'info' => 'a:15:{s:4:"name";s:4:"Node";s:11:"description";s:66:"Allows content to be submitted to the site and displayed on pages.";s:7:"package";s:4:"Core";s:7:"version";s:4:"7.40";s:4:"core";s:3:"7.x";s:5:"files";a:2:{i:0;s:11:"node.module";i:1;s:9:"node.test";}s:8:"required";b:1;s:9:"configure";s:21:"admin/structure/types";s:11:"stylesheets";a:1:{s:3:"all";a:1:{s:8:"node.css";s:21:"modules/node/node.css";}}s:7:"project";s:6:"drupal";s:9:"datestamp";s:10:"1444866674";s:5:"mtime";i:1444866674;s:12:"dependencies";a:0:{}s:3:"php";s:5:"5.2.4";s:9:"bootstrap";i:0;}',
+))
+->values(array(
+  'filename' => 'sites/default/modules/recipe/recipe.module',
+  'name' => 'recipe',
+  'type' => 'module',
+  'owner' => '',
+  'status' => '1',
+  'bootstrap' => '0',
+  'schema_version' => '7004',
+  'weight' => '0',
+  'info' => 'a:11:{s:4:"name";s:6:"Recipe";s:11:"description";s:28:"Collect and display recipes.";s:7:"package";s:6:"Recipe";s:4:"core";s:3:"7.x";s:7:"version";s:7:"7.x-1.3";s:7:"project";s:6:"recipe";s:9:"datestamp";s:10:"1335415286";s:12:"dependencies";a:0:{}s:3:"php";s:5:"5.2.4";s:5:"files";a:0:{}s:9:"bootstrap";i:0;}',
+))
+->values(array(
+  'filename' => 'modules/user/user.module',
+  'name' => 'user',
+  'type' => 'module',
+  'owner' => '',
+  'status' => '1',
+  'bootstrap' => '0',
+  'schema_version' => '7018',
+  'weight' => '0',
+  'info' => 'a:15:{s:4:"name";s:4:"User";s:11:"description";s:47:"Manages the user registration and login system.";s:7:"package";s:4:"Core";s:7:"version";s:4:"7.40";s:4:"core";s:3:"7.x";s:5:"files";a:2:{i:0;s:11:"user.module";i:1;s:9:"user.test";}s:8:"required";b:1;s:9:"configure";s:19:"admin/config/people";s:11:"stylesheets";a:1:{s:3:"all";a:1:{s:8:"user.css";s:21:"modules/user/user.css";}}s:7:"project";s:6:"drupal";s:9:"datestamp";s:10:"1444866674";s:5:"mtime";i:1444866674;s:12:"dependencies";a:0:{}s:3:"php";s:5:"5.2.4";s:9:"bootstrap";i:0;}',
+))
+->execute();
+
+$connection->schema()->createTable('users', array(
+  'fields' => array(
+    'uid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+      'unsigned' => TRUE,
+    ),
+    'name' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '60',
+      'default' => '',
+    ),
+    'pass' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '128',
+      'default' => '',
+    ),
+    'mail' => array(
+      'type' => 'varchar',
+      'not null' => FALSE,
+      'length' => '254',
+      'default' => '',
+    ),
+    'theme' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'signature' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '255',
+      'default' => '',
+    ),
+    'signature_format' => array(
+      'type' => 'varchar',
+      'not null' => FALSE,
+      'length' => '255',
+    ),
+    'created' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'access' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'login' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'status' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'timezone' => array(
+      'type' => 'varchar',
+      'not null' => FALSE,
+      'length' => '32',
+    ),
+    'language' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '12',
+      'default' => '',
+    ),
+    'picture' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+    ),
+    'init' => array(
+      'type' => 'varchar',
+      'not null' => FALSE,
+      'length' => '254',
+      'default' => '',
+    ),
+    'data' => array(
+      'type' => 'blob',
+      'not null' => FALSE,
+      'size' => 'normal',
+    ),
+  ),
+  'primary key' => array(
+    'uid',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('users')
+->fields(array(
+  'uid',
+  'name',
+  'pass',
+  'mail',
+  'theme',
+  'signature',
+  'signature_format',
+  'created',
+  'access',
+  'login',
+  'status',
+  'timezone',
+  'language',
+  'picture',
+  'init',
+  'data',
+))
+->values(array(
+  'uid' => '1',
+  'name' => 'admin',
+  'pass' => '$S$D/HVkgCg1Hvi7DN5KVSgNl.2C5g8W6oe/OoIRMUlyjkmPugQRhoB',
+  'mail' => 'admin@local.host',
+  'theme' => '',
+  'signature' => '',
+  'signature_format' => NULL,
+  'created' => '0',
+  'access' => '1444945097',
+  'login' => '1444945097',
+  'status' => '1',
+  'timezone' => NULL,
+  'language' => '',
+  'picture' => '0',
+  'init' => '',
+  'data' => 'a:1:{s:7:"contact";i:1;}',
+))
+->execute();
+
+$connection->schema()->createTable('users_roles', array(
+  'fields' => array(
+    'uid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+      'unsigned' => TRUE,
+    ),
+    'rid' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'default' => '0',
+      'unsigned' => TRUE,
+    ),
+  ),
+  'primary key' => array(
+    'uid',
+    'rid',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('users_roles')
+->fields(array(
+  'uid',
+  'rid',
+))
+->values(array(
+  'uid' => '1',
+  'rid' => '3',
+))
+->execute();
+
+$connection->schema()->createTable('variable', array(
+  'fields' => array(
+    'name' => array(
+      'type' => 'varchar',
+      'not null' => TRUE,
+      'length' => '128',
+      'default' => '',
+    ),
+    'value' => array(
+      'type' => 'blob',
+      'not null' => TRUE,
+      'size' => 'normal',
+    ),
+  ),
+  'primary key' => array(
+    'name',
+  ),
+  'mysql_character_set' => 'utf8',
+));
+
+$connection->insert('variable')
+->fields(array(
+  'name',
+  'value',
+))
+->values(array(
+  'name' => 'recipe_default_unit',
+  'value' => 's:3:"cup";',
+))
+->values(array(
+  'name' => 'recipe_fraction_display',
+  'value' => 's:10:"{%d }%d/%d";',
+))
+->values(array(
+  'name' => 'recipe_ingredient_name_normalize',
+  'value' => 's:1:"0";',
+))
+->values(array(
+  'name' => 'recipe_unit_display',
+  'value' => 's:1:"1";',
+))
+->execute();
diff --git a/tests/src/Kernel/Migrate/recipe713/MigrateRecipe713TestBase.php b/tests/src/Kernel/Migrate/recipe713/MigrateRecipe713TestBase.php
new file mode 100644
index 0000000..8de0e5c
--- /dev/null
+++ b/tests/src/Kernel/Migrate/recipe713/MigrateRecipe713TestBase.php
@@ -0,0 +1,19 @@
+<?php
+
+namespace Drupal\Tests\recipe\Kernel\Migrate\recipe713;
+
+use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
+
+/**
+ * Provides a base class for Recipe migrations from Recipe 7.x-1.3.
+ */
+abstract class MigrateRecipe713TestBase extends MigrateDrupal7TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function getFixtureFilePath() {
+    return __DIR__ . '/../../../../fixtures/recipe713.php';
+  }
+
+}
diff --git a/tests/src/Kernel/Migrate/recipe713/MigrateRecipeDisplaySettingsTest.php b/tests/src/Kernel/Migrate/recipe713/MigrateRecipeDisplaySettingsTest.php
new file mode 100644
index 0000000..9f37873
--- /dev/null
+++ b/tests/src/Kernel/Migrate/recipe713/MigrateRecipeDisplaySettingsTest.php
@@ -0,0 +1,40 @@
+<?php
+
+namespace Drupal\Tests\recipe\Kernel\Migrate\recipe713;
+
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
+
+/**
+ * Tests migration of Recipe's ingredient variables to configuration.
+ *
+ * @group recipe
+ */
+class MigrateRecipeDisplaySettingsTest extends MigrateRecipe713TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['ingredient', 'node', 'rdf', 'recipe', 'text'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installEntitySchema('ingredient');
+    $this->installEntitySchema('node');
+    $this->installConfig(static::$modules);
+    $this->executeMigrations(['recipe713_ingredient_field_display']);
+  }
+
+  /**
+   * Tests migration of ingredient field instance variables.
+   */
+  public function testMigration() {
+    $display = EntityViewDisplay::load('node.recipe.default');
+    $field_component = $display->getComponent('recipe_ingredient');
+    $this->assertSame($field_component['settings']['fraction_format'], '{%d }%d/%d');
+    $this->assertSame($field_component['settings']['unit_display'], 1);
+  }
+
+}
diff --git a/tests/src/Kernel/Migrate/recipe713/MigrateRecipeFieldSettingsTest.php b/tests/src/Kernel/Migrate/recipe713/MigrateRecipeFieldSettingsTest.php
new file mode 100644
index 0000000..5644c46
--- /dev/null
+++ b/tests/src/Kernel/Migrate/recipe713/MigrateRecipeFieldSettingsTest.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace Drupal\Tests\recipe\Kernel\Migrate\recipe713;
+
+use Drupal\field\Entity\FieldConfig;
+
+/**
+ * Tests migration of Recipe's ingredient variables to configuration.
+ *
+ * @group recipe
+ */
+class MigrateRecipeFieldSettingsTest extends MigrateRecipe713TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['ingredient', 'node', 'rdf', 'recipe', 'text'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installEntitySchema('ingredient');
+    $this->installEntitySchema('node');
+    $this->installConfig(static::$modules);
+    $this->executeMigrations(['recipe713_ingredient_field_instance']);
+  }
+
+  /**
+   * Tests migration of ingredient field instance variables.
+   */
+  public function testMigration() {
+    $field_instance = FieldConfig::load('node.recipe.recipe_ingredient');
+    $this->assertSame($field_instance->getSetting('default_unit'), 'cup');
+  }
+
+}
diff --git a/tests/src/Kernel/Migrate/recipe713/MigrateRecipeTest.php b/tests/src/Kernel/Migrate/recipe713/MigrateRecipeTest.php
new file mode 100644
index 0000000..beb9e03
--- /dev/null
+++ b/tests/src/Kernel/Migrate/recipe713/MigrateRecipeTest.php
@@ -0,0 +1,121 @@
+<?php
+
+namespace Drupal\Tests\recipe\Kernel\Migrate\recipe713;
+
+use Drupal\Core\Database\Database;
+use Drupal\node\Entity\Node;
+use Drupal\node\NodeInterface;
+
+/**
+ * Tests migration of recipe node fields.
+ *
+ * @group recipe
+ */
+class MigrateRecipeTest extends MigrateRecipe713TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = [
+    'content_translation',
+    'ingredient',
+    'language',
+    'menu_ui',
+    'node',
+    'rdf',
+    'recipe',
+    'text',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installEntitySchema('ingredient');
+    $this->installEntitySchema('node');
+    $this->installConfig(static::$modules);
+    $this->installSchema('node', ['node_access']);
+    $this->executeMigrations([
+      'language',
+      'd7_user_role',
+      'd7_user',
+      'd7_node_type',
+      'd7_node',
+      'd7_node_translation',
+      'recipe713_ingredient',
+      'recipe713_recipe',
+      'recipe713_recipe_translation',
+    ]);
+  }
+
+  /**
+   * Asserts various aspects of a recipe.
+   *
+   * @param \Drupal\node\NodeInterface $node
+   *   The imported recipe node.
+   * @param \stdClass $recipe
+   *   A stdClass object with the following properties:
+   *   - $recipe->description: A short description of the recipe.
+   *   - $recipe->ingredients: An array of ingredients for the recipe.
+   *   - $recipe->instructions: Instructions on how to prepare the recipe.
+   *   - $recipe->notes: Other notes about this recipe.
+   *   - $recipe->preptime: The preparation time in minutes.
+   *   - $recipe->source: Who deserves credit for this recipe.
+   *   - $recipe->yield: A measure of how much this recipe will produce.
+   *   - $recipe->yield_unit: The unit that $yield is expressed in.
+   */
+  protected function assertRecipeFields(NodeInterface $node, \stdClass $recipe) {
+    $this->assertEquals($recipe->cooktime, $node->recipe_cook_time->value);
+    $this->assertSame($recipe->description, $node->recipe_description->value);
+    $this->assertSame($recipe->instructions, $node->recipe_instructions->value);
+    $this->assertSame($recipe->notes, $node->recipe_notes->value);
+    $this->assertEquals($recipe->preptime, $node->recipe_prep_time->value);
+    $this->assertSame($recipe->source, $node->recipe_source->value);
+    $this->assertEquals($recipe->yield, $node->recipe_yield_amount->value);
+    $this->assertSame($recipe->yield_unit, $node->recipe_yield_unit->value);
+
+    for ($i = 0; $i < count($recipe->ingredients); $i++) {
+      $this->assertEquals($recipe->ingredients[$i]->quantity, $node->recipe_ingredient[$i]->quantity);
+      $this->assertEquals($recipe->ingredients[$i]->unit_key, $node->recipe_ingredient[$i]->unit_key);
+      $this->assertEquals($recipe->ingredients[$i]->ingredient_id, $node->recipe_ingredient[$i]->target_id);
+      $this->assertEquals($recipe->ingredients[$i]->note, $node->recipe_ingredient[$i]->note);
+    }
+  }
+
+  /**
+   * Tests the Drupal 7 recipe to Drupal 8 migration.
+   */
+  public function testRecipeFields() {
+    $database_connection = Database::getConnection('default', 'migrate');
+
+    $recipes = $database_connection
+      ->select('recipe', 'r')
+      ->fields('r')
+      ->execute()
+      ->fetchAll();
+
+    foreach ($recipes as &$source) {
+      // Get a list of ingredient IDs from the old database.
+      $source->ingredients = $database_connection->select('recipe_node_ingredient', 'rni')
+        ->fields('rni')
+        ->condition('rni.nid', $source->nid)
+        ->execute()
+        ->fetchAll();
+    }
+
+    $node = Node::load(1);
+    $this->assertRecipeFields($node, array_shift($recipes));
+
+    // Verify the fields of an English-language recipe.
+    $node = Node::load(2);
+    $this->assertRecipeFields($node, array_shift($recipes));
+    $this->assertTrue($node->hasTranslation('is'), 'Node 2 has an Islandic translation');
+
+    // Verify the fields of a Islandic-language recipe that was translated from
+    // node 2.
+    $translation = $node->getTranslation('is');
+    $this->assertRecipeFields($translation, array_shift($recipes));
+  }
+
+}
diff --git a/tests/upgrade/drupal-7.recipe.database.php b/tests/upgrade/drupal-7.recipe.database.php
deleted file mode 100644
index 8622e25..0000000
--- a/tests/upgrade/drupal-7.recipe.database.php
+++ /dev/null
@@ -1,388 +0,0 @@
-<?php
-
-/**
- * @file
- * Filled installation of Recipe 7.x-1.3, for test purposes.
- *
- * This file was generated by the dump-database-d7.sh tool, from an
- * installation of Drupal 7:
- */
-
-db_insert('node')->fields(array(
-  'nid',
-  'vid',
-  'type',
-  'language',
-  'title',
-  'uid',
-  'status',
-  'created',
-  'changed',
-  'comment',
-  'promote',
-  'sticky',
-  'tnid',
-  'translate',
-))
-->values(array(
-  'nid' => '1',
-  'vid' => '1',
-  'type' => 'recipe',
-  'language' => 'und',
-  'title' => 'Salt water',
-  'uid' => '1',
-  'status' => '1',
-  'created' => '1372914408',
-  'changed' => '1372914408',
-  'comment' => '2',
-  'promote' => '1',
-  'sticky' => '0',
-  'tnid' => '0',
-  'translate' => '0',
-))
-->execute();
-
-db_insert('node_comment_statistics')->fields(array(
-  'nid',
-  'cid',
-  'last_comment_timestamp',
-  'last_comment_name',
-  'last_comment_uid',
-  'comment_count',
-))
-->values(array(
-  'nid' => '1',
-  'cid' => '0',
-  'last_comment_timestamp' => '1372914408',
-  'last_comment_name' => NULL,
-  'last_comment_uid' => '1',
-  'comment_count' => '0',
-))
-->execute();
-
-db_insert('node_revision')->fields(array(
-  'nid',
-  'vid',
-  'uid',
-  'title',
-  'log',
-  'timestamp',
-  'status',
-  'comment',
-  'promote',
-  'sticky',
-))
-->values(array(
-  'nid' => '1',
-  'vid' => '1',
-  'uid' => '1',
-  'title' => 'Salt water',
-  'log' => '',
-  'timestamp' => '1372914408',
-  'status' => '1',
-  'comment' => '2',
-  'promote' => '1',
-  'sticky' => '0',
-))
-->execute();
-
-db_insert('node_type')->fields(array(
-  'type',
-  'name',
-  'base',
-  'module',
-  'description',
-  'help',
-  'has_title',
-  'title_label',
-  'custom',
-  'modified',
-  'locked',
-  'disabled',
-  'orig_type',
-))
-->values(array(
-  'type' => 'recipe',
-  'name' => 'Recipe',
-  'base' => 'recipe',
-  'module' => 'recipe',
-  'description' => 'Share your favorite recipes with your fellow cooks.',
-  'help' => '',
-  'has_title' => '1',
-  'title_label' => 'Title',
-  'custom' => '0',
-  'modified' => '0',
-  'locked' => '1',
-  'disabled' => '0',
-  'orig_type' => 'recipe',
-))
-->execute();
-
-db_create_table('recipe', array(
-  'fields' => array(
-    'nid' => array(
-      'type' => 'serial',
-      'unsigned' => TRUE,
-      'not null' => TRUE,
-    ),
-    'source' => array(
-      'type' => 'varchar',
-      'not null' => FALSE,
-      'length' => 255,
-    ),
-    'yield' => array(
-      'type' => 'int',
-      'unsigned' => FALSE,
-      'not null' => TRUE,
-    ),
-    'yield_unit' => array(
-      'type' => 'varchar',
-      'length' => 64,
-      'not null' => TRUE,
-      'default' => '',
-    ),
-    'description' => array(
-      'type' => 'text',
-    ),
-    'instructions' => array(
-      'type' => 'text',
-    ),
-    'notes' => array(
-      'type' => 'text',
-    ),
-    'preptime' => array(
-      'type' => 'int',
-      'unsigned' => TRUE,
-      'default' => 0,
-    ),
-    'cooktime' => array(
-      'type' => 'int',
-      'unsigned' => TRUE,
-      'default' => 0,
-    ),
-  ),
-  'primary key' => array(
-    'nid',
-  ),
-  'module' => 'recipe',
-  'name' => 'recipe',
-));
-db_insert('recipe')->fields(array(
-  'nid',
-  'source',
-  'yield',
-  'yield_unit',
-  'description',
-  'instructions',
-  'notes',
-  'preptime',
-  'cooktime',
-))
-->values(array(
-  'nid' => '1',
-  'source' => 'John Doe',
-  'yield' => '1',
-  'yield_unit' => 'Servings',
-  'description' => 'Basic salt water.',
-  'instructions' => "Combine water and salt in a glass.\r\n\r\nStir.",
-  'notes' => 'Do not consume!',
-  'preptime' => '1',
-  'cooktime' => '2',
-))
-->execute();
-
-db_create_table('recipe_ingredient', array(
-  'fields' => array(
-    'id' => array(
-      'type' => 'serial',
-      'unsigned' => TRUE,
-      'not null' => TRUE,
-    ),
-    'name' => array(
-      'type' => 'varchar',
-      'length' => 255,
-    ),
-    'link' => array(
-      'type' => 'int',
-      'unsigned' => TRUE,
-      'not null' => TRUE,
-    ),
-  ),
-  'primary key' => array(
-    'id',
-  ),
-  'module' => 'recipe',
-  'name' => 'recipe_ingredient',
-));
-db_insert('recipe_ingredient')->fields(array(
-  'id',
-  'name',
-  'link',
-))
-->values(array(
-  'id' => '1',
-  'name' => 'water',
-  'link' => '0',
-))
-->values(array(
-  'id' => '2',
-  'name' => 'salt',
-  'link' => '0',
-))
-->execute();
-
-db_create_table('recipe_node_ingredient', array(
-  'fields' => array(
-    'id' => array(
-      'type' => 'serial',
-      'unsigned' => TRUE,
-      'not null' => TRUE,
-    ),
-    'nid' => array(
-      'type' => 'int',
-      'unsigned' => TRUE,
-      'not null' => TRUE,
-    ),
-    'unit_key' => array(
-      'type' => 'varchar',
-      'length' => 255,
-      'not null' => TRUE,
-      'default' => '',
-    ),
-    'quantity' => array(
-      'type' => 'float',
-      'not null' => FALSE,
-    ),
-    'ingredient_id' => array(
-      'type' => 'int',
-      'unsigned' => TRUE,
-      'not null' => TRUE,
-    ),
-    'weight' => array(
-      'type' => 'int',
-      'not null' => TRUE,
-      'default' => 0,
-    ),
-    'note' => array(
-      'type' => 'varchar',
-      'length' => 255,
-      'not null' => TRUE,
-      'default' => '',
-    ),
-  ),
-  'primary key' => array(
-    'id',
-  ),
-  'module' => 'recipe',
-  'name' => 'recipe_node_ingredient',
-));
-db_insert('recipe_node_ingredient')->fields(array(
-  'id',
-  'nid',
-  'unit_key',
-  'quantity',
-  'ingredient_id',
-  'weight',
-  'note',
-))
-->values(array(
-  'id' => '1',
-  'nid' => '1',
-  'unit_key' => 'cup',
-  'quantity' => '2',
-  'ingredient_id' => '1',
-  'weight' => '0',
-  'note' => 'cold',
-))
-->values(array(
-  'id' => '2',
-  'nid' => '1',
-  'unit_key' => 'tablespoon',
-  'quantity' => '1',
-  'ingredient_id' => '2',
-  'weight' => '1',
-  'note' => '',
-))
-->execute();
-
-db_insert('system')->fields(array(
-  'filename',
-  'name',
-  'type',
-  'owner',
-  'status',
-  'bootstrap',
-  'schema_version',
-  'weight',
-  'info',
-))
-->values(array(
-  'filename' => 'sites/default/modules/recipe/recipe.module',
-  'name' => 'recipe',
-  'type' => 'module',
-  'owner' => '',
-  'status' => '1',
-  'bootstrap' => '0',
-  'schema_version' => '7004',
-  'weight' => '0',
-  'info' => 'a:11:{s:4:"name";s:6:"Recipe";s:11:"description";s:28:"Collect and display recipes.";s:7:"package";s:6:"Recipe";s:4:"core";s:3:"7.x";s:7:"version";s:7:"7.x-1.3";s:7:"project";s:6:"recipe";s:9:"datestamp";s:10:"1335415286";s:12:"dependencies";a:0:{}s:3:"php";s:5:"5.2.4";s:5:"files";a:0:{}s:9:"bootstrap";i:0;}',
-))
-->execute();
-
-db_insert('variable')->fields(array(
-  'name',
-  'value',
-))
-->values(array(
-  'name' => 'recipe_add_more_count',
-  'value' => 's:1:"5";',
-))
-->values(array(
-  'name' => 'recipe_default_unit',
-  'value' => 's:0:"";',
-))
-->values(array(
-  'name' => 'recipe_fraction_display',
-  'value' => 's:16:"{%d }%d&frasl;%d";',
-))
-->values(array(
-  'name' => 'recipe_help',
-  'value' => 's:26:"Test submission guideline.";',
-))
-->values(array(
-  'name' => 'recipe_ingredient_name_normalize',
-  'value' => 's:1:"0";',
-))
-->values(array(
-  'name' => 'recipe_preferred_system_of_measure',
-  'value' => 's:1:"0";',
-))
-->values(array(
-  'name' => 'recipe_preferred_system_of_measure_limit',
-  'value' => 'i:0;',
-))
-->values(array(
-  'name' => 'recipe_recent_box_enable',
-  'value' => 'i:1;',
-))
-->values(array(
-  'name' => 'recipe_recent_box_title',
-  'value' => 's:14:"Latest recipes";',
-))
-->values(array(
-  'name' => 'recipe_recent_display',
-  'value' => 's:1:"5";',
-))
-->values(array(
-  'name' => 'recipe_summary_location',
-  'value' => 's:1:"0";',
-))
-->values(array(
-  'name' => 'recipe_summary_title',
-  'value' => 's:7:"Summary";',
-))
-->values(array(
-  'name' => 'recipe_unit_display',
-  'value' => 's:1:"0";',
-))
-->execute();
