--- attachment.install-org      2006-09-12 13:06:44.000000000 -0500
+++ attachment.install  2007-04-03 00:48:19.000000000 -0500
@@ -51,3 +51,65 @@
       break;
   }
 }
+
+function attachment_update_2() {
+  $ret = array();
+
+  // add new fields
+  $ret[] = update_sql(
+    "ALTER TABLE {attachment}
+      ADD COLUMN `vid` INTEGER UNSIGNED NOT NULL DEFAULT 0 AFTER `nid`;"
+  );
+  // make sure our output directory exists
+  $directory = variable_get('file_directory_path','files');
+  file_check_directory($directory, TRUE);
+
+  // limit it to records with no vid incase this has to be run multiple times
+  $result = db_query('SELECT a.nid, n.vid, a.fid, f.directory FROM {attachment} a INNER JOIN {node} n ON a.nid = n.nid INNER JOIN {file} f ON a.fid=f.fid WHERE a.vid = 0 ORDER BY a.nid');
+  while ($node = db_fetch_object($result)) {
+    // load the filemanager file ...
+    $oldfile = db_fetch_object(db_query('SELECT * FROM {attachment} WHERE fid = %d', $node->fid));
+    // ... and build a filepath
+    $oldfile->path = variable_get('filemanager_private_path', 'files') .'/active/'. $node->directory .'/'. $oldfile->filename;
+
+    $oldfile_more = db_fetch_object(db_query('SELECT * FROM {file} WHERE fid = %d', $node->fid));
+
+    // convert the filemanager object into a core file object
+    $newfile = new stdClass();
+    $newfile->filename = $oldfile->filename;
+    $newfile->filepath = $oldfile->path;
+    $newfile->filemime = $oldfile_more->mimetype;
+    $newfile->filesize = $oldfile->size;
+
+      $newfile->fid = db_next_id('{files}_fid');
+      db_query("INSERT INTO {files} (fid, nid, filename, filepath, filemime, filesize) VALUES (%d, %d, '%s', '%s', '%s', %d)",
+        $newfile->fid, $node->nid, $newfile->filename, $newfile->filepath, $newfile->filemime, $newfile->filesize);
+      db_query("INSERT INTO {file_revisions} (fid, vid, list, description) VALUES (%d, %d, %d, '%s')",
+        $newfile->fid, $node->vid, 1, $oldfile->title);
+
+      // update the attachment records
+      db_query("UPDATE {attachment} SET vid = %d WHERE nid = %d;", $node->vid, $node->nid);
+
+      // remove the filemanager record and file
+      //db_query("DELETE FROM {file} WHERE fid = %d", $node->fid);
+      //file_delete($oldfile->path);
+#    }
+  }
+  // remove the old fields
+/*
+  $ret[] = update_sql(
+    "ALTER TABLE {attachment}
+      DROP COLUMN `vid`
+  );
+  $ret[] = update_sql(
+    "DELETE FROM {file}
+      WHERE area="attachments");"
+  );
+*/
+    drupal_set_message(t("The attachment module is no longer supported. Your files have been migrated to the core upload module. You should disable the attachment and filemanager modules now."));
+  return $ret;
+}
+
+
+
+

