· 8 years ago · Aug 10, 2018, 10:22 AM
1<?php defined('SYSPATH') or die('No direct script access.');
2
3/**
4 * auth tables
5 */
6class Migration_Auth_20110204130322 extends Minion_Migration_Base {
7
8 /**
9 * Run queries needed to apply this migration
10 *
11 * @param Kohana_Database Database connection
12 */
13 public function up(Kohana_Database $db)
14 {
15 $db->query(NULL, '
16 CREATE TABLE IF NOT EXISTS `roles` (
17 `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
18 `name` VARCHAR(32) NOT NULL,
19 `description` VARCHAR(255) NOT NULL,
20 PRIMARY KEY (`id`),
21 UNIQUE KEY `uk_name` (`name`)
22 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
23 ');
24
25 $db->query(NULL, '
26 CREATE TABLE IF NOT EXISTS `pvt_roles_users` (
27 `user_id` INT UNSIGNED NOT NULL,
28 `role_id` INT UNSIGNED NOT NULL,
29 PRIMARY KEY (`user_id`,`role_id`),
30 KEY `k_user_id` (`user_id`),
31 KEY `k_role_id` (`role_id`)
32 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
33 ');
34
35 $db->query(NULL, '
36 CREATE TABLE IF NOT EXISTS `users` (
37 `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
38 `email` VARCHAR(127) NOT NULL,
39 `username` VARCHAR(32) NOT NULL DEFAULT \'\',
40 `password` VARCHAR(64) NOT NULL,
41 `logins` INT UNSIGNED NOT NULL DEFAULT \'0\',
42 `last_login` INT UNSIGNED,
43 PRIMARY KEY (`id`),
44 UNIQUE KEY `uk_username` (`username`),
45 UNIQUE KEY `uk_email` (`email`)
46 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
47 ');
48
49 $db->query(NULL, '
50 CREATE TABLE IF NOT EXISTS `user_tokens` (
51 `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
52 `user_id` INT UNSIGNED NOT NULL,
53 `user_agent` VARCHAR(40) NOT NULL,
54 `token` VARCHAR(40) NOT NULL,
55 `type` VARCHAR(100) NOT NULL,
56 `created` INT UNSIGNED NOT NULL,
57 `expires` INT UNSIGNED NOT NULL,
58 PRIMARY KEY (`id`),
59 UNIQUE KEY `uk_token` (`token`),
60 KEY `k_user_id` (`user_id`)
61 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
62 ');
63 }
64
65 /**
66 * Run queries needed to remove this migration
67 *
68 * @param Kohana_Database Database connection
69 */
70 public function down(Kohana_Database $db)
71 {
72 $db->query(NULL, 'DROP TABLE pvt_roles_users');
73 $db->query(NULL, 'DROP TABLE roles');
74 $db->query(NULL, 'DROP TABLE users');
75 $db->query(NULL, 'DROP TABLE user_tokens');
76 }
77}