]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Convert SamplePlugin to new-style table defs, tweak some stuff to test basic checkschema
authorBrion Vibber <brion@pobox.com>
Wed, 20 Oct 2010 00:25:56 +0000 (17:25 -0700)
committerBrion Vibber <brion@pobox.com>
Wed, 20 Oct 2010 00:25:56 +0000 (17:25 -0700)
lib/schema.php
plugins/OStatus/classes/Ostatus_profile.php
plugins/Sample/SamplePlugin.php

index 20bd95f28a8a186ae4109ee602f005f6eeae3345..e4b7f416cd7fa7a4e474e9548e8831e876702e46 100644 (file)
@@ -254,6 +254,9 @@ class Schema
      */
     function appendForeignKeyDef(array &$sql, $name, array $def)
     {
+        if (count($def) != 2) {
+            throw new Exception("Invalid foreign key def for $name: " . var_export($def, true));
+        }
         list($refTable, $map) = $def;
         $srcCols = array_keys($map);
         $refCols = array_values($map);
@@ -884,7 +887,7 @@ class Schema
             if (!$cd->nullable) {
                 $column['not null'] = true;
             }
-            if ($cd->autoincrement) {
+            if ($cd->auto_increment) {
                 $column['type'] = 'serial';
             }
             if ($cd->default) {
@@ -942,13 +945,13 @@ class Schema
      */
     function validateDef($tableName, array $def)
     {
-        if (count($defs) && $defs[0] instanceof ColumnDef) {
-            $def = $this->oldToNew($tableName, $defs);
+        if (count($def) && $def[0] instanceof ColumnDef) {
+            $def = $this->oldToNew($tableName, $def);
         }
 
         // A few quick checks :D
         if (!isset($def['fields'])) {
-            throw new Exceptioni("Invalid table definition for $tableName: no fields.");
+            throw new Exception("Invalid table definition for $tableName: no fields.");
         }
 
         return $def;
index 572b5ea0718336b79dfbff9eb6b42c16ebb8588e..4ba0a6c85d91f45e3eb7894b8a4fc2fc224ef136 100644 (file)
@@ -73,8 +73,8 @@ class Ostatus_profile extends Managed_DataObject
                 'ostatus_profile_feeduri_idx' => array('feeduri'),
             ),
             'foreign keys' => array(
-                'profile_id' => array('profile' => 'id'),
-                'group_id' => array('user_group' => 'id'),
+                'ostatus_profile_profile_id_fkey' => array('profile', array('profile_id' => 'id')),
+                'ostatus_profile_group_id_fkey' => array('user_group', array('group_id' => 'id')),
             ),
         );
     }
index ef69121a9986459b39840025917eb79d6e3d24e1..a0d1140f3725b77512fc54057df3000e89b3962c 100644 (file)
@@ -172,9 +172,20 @@ class SamplePlugin extends Plugin
         // For storing user-submitted flags on profiles
 
         $schema->ensureTable('user_greeting_count',
-                             array(new ColumnDef('user_id', 'integer', null,
-                                                 true, 'PRI'),
-                                   new ColumnDef('greeting_count', 'integer')));
+            array(
+                'fields' => array(
+                    'user_id' => array('type' => 'int', 'not null' => true),
+                    'greeting_count' => array('type' => 'int'),
+                ),
+                'primary key' => array('user_id'),
+                'foreign keys' => array(
+                    // Not all databases will support foreign keys, but even
+                    // when not enforced it's helpful to include these definitions
+                    // as documentation.
+                    'user_greeting_count_user_id_fkey' => array('user', array('user_id' => 'id')),
+                ),
+            )
+        );
 
         return true;
     }