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