1: <?php
2:
3: class CreateJournalingTables extends CakeMigration {
4:
5: 6: 7: 8: 9: 10:
11: public $description = '';
12:
13: 14: 15: 16: 17: 18:
19: public $migration = array(
20: 'up' => array(
21: 'create_table' => array(
22: 'journals' => array(
23: 'id' => array('type' => 'integer', 'null' => false, 'default' => NULL, 'key' => 'primary'),
24: 'type' => array('type' => 'string', 'null' => false, 'default' => NULL, 'collate' => 'utf8_general_ci', 'charset' => 'utf8'),
25: 'journalized_type' => array('type' => 'string', 'null' => false, 'default' => NULL, 'collate' => 'utf8_general_ci', 'charset' => 'utf8'),
26: 'journalized_id' => array('type' => 'integer', 'null' => false, 'default' => NULL),
27: 'created' => array('type' => 'datetime', 'null' => false, 'default' => NULL),
28: 'indexes' => array(
29: 'PRIMARY' => array('column' => 'id', 'unique' => 1),
30: 'journals_journalized_type' => array('column' => 'journalized_type'),
31: 'journals_journalized_id' => array('column' => 'journalized_id'),
32: 'journals_created' => array('column' => 'created'),
33: ),
34: 'tableParameters' => array('charset' => 'utf8', 'collate' => 'utf8_general_ci', 'engine' => 'InnoDB'),
35: ),
36: 'journal_details' => array(
37: 'id' => array('type' => 'integer', 'null' => false, 'default' => NULL, 'key' => 'primary'),
38: 'journal_id' => array('type' => 'integer', 'null' => false, 'default' => NULL),
39: 'property' => array('type' => 'string', 'null' => false, 'default' => NULL, 'collate' => 'utf8_general_ci', 'charset' => 'utf8'),
40: 'old_value' => array('type' => 'binary', 'length' => 4294967295, 'null' => true, 'default' => NULL),
41: 'value' => array('type' => 'binary', 'length' => 4294967295, 'null' => true, 'default' => NULL),
42: 'indexes' => array(
43: 'PRIMARY' => array('column' => 'id', 'unique' => 1),
44: 'journal_details_journal_id' => array('column' => 'journal_id'),
45: 'journal_details_property' => array('column' => 'property'),
46: ),
47: 'tableParameters' => array('charset' => 'utf8', 'collate' => 'utf8_general_ci', 'engine' => 'InnoDB'),
48: ),
49: ),
50: ),
51: 'down' => array(
52: 'drop_table' => array(
53: 'journals',
54: 'journal_details',
55: )
56: ),
57: );
58:
59: 60: 61: 62: 63: 64: 65:
66: public function before($direction) {
67: return true;
68: }
69:
70: 71: 72: 73: 74: 75: 76:
77: public function after($direction) {
78: return true;
79: }
80:
81: }
82: