diff --git a/e107_files/utilities/dbgen.php b/e107_files/utilities/dbgen.php
new file mode 100644
index 000000000..878d2436e
--- /dev/null
+++ b/e107_files/utilities/dbgen.php
@@ -0,0 +1,206 @@
+get_table_def('',e_ADMIN.'sql/core_sql.php');
+$tableArray = array();
+
+foreach ($tableStruct as $t)
+{
+ $tableArray[$t[1]] = array('src' => e_ADMIN.'sql/core_sql.php', 'desc' => 'core:'.$t[1]);
+}
+
+
+// Now do the plugins
+$sqlFiles = e107::getPref('e_sql_list');
+foreach ($sqlFiles as $p => $f)
+{
+ $targ = e_PLUGIN.$p.'/'.$f.'.php';
+ //echo $p.':'.$targ.'
';
+ $tableStruct = $dbAdm->get_table_def('',$targ);
+ foreach ($tableStruct as $t)
+ {
+ $tableArray[$t[1]] = array('src' => $targ, 'desc' => 'plug:'.$p.':'.$t[1]);
+ }
+}
+unset($tableStruct);
+unset($sqlFiles);
+
+
+function genFileSelect($tableDefs, $name,$fl)
+{
+ $ret = "\n";
+ return $ret;
+}
+
+
+
+
+
+//$HEADER = '';
+//$FOOTER = '';
+require(HEADERF);
+
+
+$message = '';
+//========================================================
+// ACTION
+//========================================================
+if (isset($_POST['do_conversion']))
+{
+ if (varset($_POST['selected_plugin'],FALSE))
+ {
+ $table = $_POST['selected_plugin'];
+ if (!isset($tableArray[$table]))
+ {
+ $message = 'Bad table name specified';
+ $table = '';
+ }
+ }
+ else
+ {
+ $message = 'No table name specified';
+ }
+}
+
+if ($table)
+{
+ $baseStruct = $dbAdm->get_table_def($table,$tableArray[$table]['src']);
+ $fieldDefs = $dbAdm->parse_field_defs($baseStruct[0][2]); // Required definitions
+ $outDefs = array();
+ foreach ($fieldDefs as $k => $v)
+ {
+ switch ($v['type'])
+ {
+ case 'field' :
+ if (vartrue($v['autoinc']))
+ {
+ if (isset($outDefs['WHERE']))
+ {
+ }
+ else
+ {
+ $outDefs['WHERE'] = "`{$v['name']}` = \$id";
+ }
+ break;
+ }
+ $baseType = preg_replace('#\(\d+?\)#', '', $v['fieldtype']); // Should strip any length
+ switch ($baseType)
+ {
+ case 'int' :
+ case 'shortint' :
+ case 'tinyint' :
+ $outDefs['_FIELD_TYPES'][$v['name']] = 'int';
+ break;
+ case 'char' :
+ case 'text' :
+ case 'varchar' :
+ $outDefs['_FIELD_TYPES'][$v['name']] = 'todb';
+ break;
+ }
+ if (isset($v['nulltype']) && !isset($v['default']))
+ {
+ $outDefs['_NOTNULL'][$v['name']] = '';
+ }
+ break;
+ case 'pkey' :
+ case 'ukey' :
+ case 'key' :
+ break; // Do nothing with keys for now
+ default :
+ echo "Unexpected field type: {$k} => {$v['type']}
";
+ }
+ }
+ $toSave = $eArrayStorage->WriteArray($outDefs, FALSE); // 2nd parameter to TRUE if needs to be written to DB
+}
+
+//========================================================
+// FORM
+//========================================================
+$text =
+ "