diff --git a/file_entity.install b/file_entity.install
index 3fe21a2..5b463ad 100644
--- a/file_entity.install
+++ b/file_entity.install
@@ -23,6 +23,11 @@ function file_entity_schema_alter(&$schema) {
  * Implements hook_schema().
  */
 function file_entity_schema() {
+   // Using this strange looking function name because of http://drupal.org/node/150220.
+  // Any changes to this table should happen after this line.
+  $schema['file_type'] = _file_entity_update_7105_schema_file_type();
+  $schema['file_type_mimetypes'] = _file_entity_update_7105_schema_file_type_mimetypes();
+
   $schema['file_display'] = array(
     'description' => 'Stores configuration options for file displays.',
     'fields' => array(
@@ -246,3 +251,72 @@ function file_entity_update_7104() {
     }
   }
 }
+
+// Using this strange looking function name because of http://drupal.org/node/150220.
+// This function should never be modified.
+function _file_entity_update_7105_schema_file_type() {
+  return array(
+    'description' => 'Stores the settings for file types.',
+    'fields' => array(
+      'type' => array(
+        'description' => 'The machine name of the file type.',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'name' => array(
+        'description' => 'The human readable name of the file type.',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+        'translatable' => TRUE,
+      ),
+      'description' => array(
+        'description' => 'A brief description of this file type.',
+        'type' => 'text',
+        'not null' => TRUE,
+        'size' => 'medium',
+        'translatable' => TRUE,
+      ),
+    ),
+    'primary key' => array('type'),
+  );
+}
+
+// Using this strange looking function name because of http://drupal.org/node/150220.
+// This function should never be modified.
+function _file_entity_update_7105_schema_file_type_mimetypes() {
+  return array(
+    'description' => 'Maps mimetypes to file types.',
+    'fields' => array(
+      'name' => array(
+        'description' => 'The machine name of the file type.',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+      ),
+      'mimetype' => array(
+        'description' => 'Mimetypes mapped to this file type.',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+      ),
+    ),
+    'primary key' => array('name'),
+    'indexes' => array(
+      array('file_type_mimetype' => 'mimetype'),
+    ),
+  );
+}
+
+/**
+ * Add the file_type and file_type_mimetypes tables.
+ */
+function file_entity_update_7105() {
+  db_create_table('file_type', _file_entity_update_7105_schema_file_type());
+  db_create_table('file_type_mimetypes',  _file_entity_update_7105_schema_file_type_mimetypes());
+}
