1<?php 2 3function migrate_sqlng($db) 4{ 5 $migration = new Horde_Db_Migration_Base($db); 6 7 /* Cleanup potential left-overs. */ 8 try { 9 $migration->dropTable('test_shares'); 10 $migration->dropTable('test_shares_groups'); 11 $migration->dropTable('test_shares_users'); 12 } catch (Horde_Db_Exception $e) { 13 } 14 15 $t = $migration->createTable('test_shares', array('autoincrementKey' => 'share_id')); 16 $t->column('share_name', 'string', array('limit' => 255, 'null' => false)); 17 $t->column('share_owner', 'string', array('limit' => 255)); 18 $t->column('share_parents', 'string', array('limit' => 4000)); 19 $t->column('share_flags', 'integer', array('default' => 0, 'null' => false)); 20 $t->column('perm_creator_' . Horde_Perms::SHOW, 'boolean', array('default' => false, 'null' => false)); 21 $t->column('perm_creator_' . Horde_Perms::READ, 'boolean', array('default' => false, 'null' => false)); 22 $t->column('perm_creator_' . Horde_Perms::EDIT, 'boolean', array('default' => false, 'null' => false)); 23 $t->column('perm_creator_' . Horde_Perms::DELETE, 'boolean', array('default' => false, 'null' => false)); 24 $t->column('perm_default_' . Horde_Perms::SHOW, 'boolean', array('default' => false, 'null' => false)); 25 $t->column('perm_default_' . Horde_Perms::READ, 'boolean', array('default' => false, 'null' => false)); 26 $t->column('perm_default_' . Horde_Perms::EDIT, 'boolean', array('default' => false, 'null' => false)); 27 $t->column('perm_default_' . Horde_Perms::DELETE, 'boolean', array('default' => false, 'null' => false)); 28 $t->column('perm_guest_' . Horde_Perms::SHOW, 'boolean', array('default' => false, 'null' => false)); 29 $t->column('perm_guest_' . Horde_Perms::READ, 'boolean', array('default' => false, 'null' => false)); 30 $t->column('perm_guest_' . Horde_Perms::EDIT, 'boolean', array('default' => false, 'null' => false)); 31 $t->column('perm_guest_' . Horde_Perms::DELETE, 'boolean', array('default' => false, 'null' => false)); 32 $t->column('attribute_name', 'string', array('limit' => 255)); 33 $t->column('attribute_desc', 'string', array('limit' => 255)); 34 $t->column('attribute_clob', 'text'); 35 $t->end(); 36 37 $migration->addIndex('test_shares', array('share_name')); 38 $migration->addIndex('test_shares', array('share_owner')); 39 $migration->addIndex('test_shares', array('perm_creator_' . Horde_Perms::SHOW)); 40 $migration->addIndex('test_shares', array('perm_creator_' . Horde_Perms::READ)); 41 $migration->addIndex('test_shares', array('perm_creator_' . Horde_Perms::EDIT)); 42 $migration->addIndex('test_shares', array('perm_creator_' . Horde_Perms::DELETE)); 43 $migration->addIndex('test_shares', array('perm_default_' . Horde_Perms::SHOW)); 44 $migration->addIndex('test_shares', array('perm_default_' . Horde_Perms::READ)); 45 $migration->addIndex('test_shares', array('perm_default_' . Horde_Perms::EDIT)); 46 $migration->addIndex('test_shares', array('perm_default_' . Horde_Perms::DELETE)); 47 $migration->addIndex('test_shares', array('perm_guest_' . Horde_Perms::SHOW)); 48 $migration->addIndex('test_shares', array('perm_guest_' . Horde_Perms::READ)); 49 $migration->addIndex('test_shares', array('perm_guest_' . Horde_Perms::EDIT)); 50 $migration->addIndex('test_shares', array('perm_guest_' . Horde_Perms::DELETE)); 51 52 $t = $migration->createTable('test_shares_groups'); 53 $t->column('share_id', 'integer', array('null' => false)); 54 $t->column('group_uid', 'string', array('limit' => 255, 'null' => false)); 55 $t->column('perm_' . Horde_Perms::SHOW, 'boolean', array('default' => false, 'null' => false)); 56 $t->column('perm_' . Horde_Perms::READ, 'boolean', array('default' => false, 'null' => false)); 57 $t->column('perm_' . Horde_Perms::EDIT, 'boolean', array('default' => false, 'null' => false)); 58 $t->column('perm_' . Horde_Perms::DELETE, 'boolean', array('default' => false, 'null' => false)); 59 $t->end(); 60 61 $migration->addIndex('test_shares_groups', array('share_id')); 62 $migration->addIndex('test_shares_groups', array('group_uid')); 63 $migration->addIndex('test_shares_groups', array('perm_' . Horde_Perms::SHOW)); 64 $migration->addIndex('test_shares_groups', array('perm_' . Horde_Perms::READ)); 65 $migration->addIndex('test_shares_groups', array('perm_' . Horde_Perms::EDIT)); 66 $migration->addIndex('test_shares_groups', array('perm_' . Horde_Perms::DELETE)); 67 68 $t = $migration->createTable('test_shares_users'); 69 $t->column('share_id', 'integer', array('null' => false)); 70 $t->column('user_uid', 'string', array('limit' => 255)); 71 $t->column('perm_' . Horde_Perms::SHOW, 'boolean', array('default' => false, 'null' => false)); 72 $t->column('perm_' . Horde_Perms::READ, 'boolean', array('default' => false, 'null' => false)); 73 $t->column('perm_' . Horde_Perms::EDIT, 'boolean', array('default' => false, 'null' => false)); 74 $t->column('perm_' . Horde_Perms::DELETE, 'boolean', array('default' => false, 'null' => false)); 75 $t->end(); 76 77 $migration->addIndex('test_shares_users', array('share_id')); 78 $migration->addIndex('test_shares_users', array('user_uid')); 79 $migration->addIndex('test_shares_users', array('perm_' . Horde_Perms::SHOW)); 80 $migration->addIndex('test_shares_users', array('perm_' . Horde_Perms::READ)); 81 $migration->addIndex('test_shares_users', array('perm_' . Horde_Perms::EDIT)); 82 $migration->addIndex('test_shares_users', array('perm_' . Horde_Perms::DELETE)); 83 84 $migration->migrate('up'); 85} 86