--- recipe.install.orig	2007-10-22 12:23:19.000000000 -0500
+++ recipe.install	2008-03-11 14:05:11.000000000 -0500
@@ -6,18 +6,20 @@ function recipe_install() {
     case 'mysql':
     case 'mysqli':
       $s = db_query("CREATE TABLE {recipe} (
-         nid int(10) unsigned NOT NULL,
+         vid int(10) unsigned NOT NULL default 0,
+         nid int(10) unsigned NOT NULL default 0,
          source varchar(255),
          yield int(2) unsigned NOT NULL,
          instructions text,
          notes text,
          preptime int(10) unsigned DEFAULT '0',
-         PRIMARY KEY (nid)
+         PRIMARY KEY (vid,nid)
       ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
 
       $s = $s && db_query("CREATE TABLE {recipe_node_ingredient} (
          id int unsigned NOT NULL PRIMARY KEY auto_increment,
-         nid int(10) unsigned NOT NULL,
+         vid int(10) unsigned NOT NULL default 0,
+         nid int(10) unsigned NOT NULL default 0,
          unit_id int(3) unsigned NOT NULL,
          quantity double,
          ingredient_id int(10) unsigned NOT NULL
@@ -42,18 +44,20 @@ function recipe_install() {
 
     case 'pgsql':
       $s = db_query("CREATE TABLE {recipe} (
-         nid integer NOT NULL,
+         vid integer NOT NULL default 0,
+         nid integer NOT NULL default 0,
          source varchar(255),
          yield integer NOT NULL,
          instructions text,
          notes text,
          preptime integer NOT NULL default '0',
-         PRIMARY KEY (nid)
+         PRIMARY KEY (vid,nid)
       );");
 
      $s = $s && db_query("CREATE TABLE {recipe_node_ingredient} (
          id serial NOT NULL,
-         nid integer NOT NULL,
+         vid integer NOT NULL default 0,
+         nid integer NOT NULL default 0,
          unit_id integer NOT NULL,
          quantity real,
          ingredient_id integer NOT NULL,
@@ -112,6 +116,19 @@ function recipe_update_2() {
   return $ret;
 }
 
+/**
+ * Add versioning fields.
+ */
+function recipe_update_3() {
+  $ret = array();
+
+  $ret[] = update_sql('ALTER TABLE {recipe} ADD COLUMN vid INT(10) NOT NULL default 0');
+  $ret[] = update_sql('ALTER TABLE {recipe_node_ingredient} ADD COLUMN vid INT(10) NOT NULL default 0');
+  $ret[] = update_sql('ALTER TABLE {recipe} DROP PRIMARY KEY, ADD PRIMARY KEY (vid, nid)');
+
+  return $ret;
+}
+
 function recipe_populate_units()
 {
   $s = true;
