diff options
author | Florian Pritz <bluewind@xinu.at> | 2014-04-12 18:58:08 +0200 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2014-04-12 19:04:53 +0200 |
commit | 72a2e368c71cad39187d10f6ddaa69d6e8f4a8ba (patch) | |
tree | f41d4943b3583e7d597d45f0f4c18ae8bf41f96c | |
parent | c49ba7354ee27fde980c7ff1722040232a3cb373 (diff) |
Add foreign keys to database
Changing the referrer value for the root admin from 0 to NULL to make
the foreign key check work.
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rw-r--r-- | INSTALL | 2 | ||||
-rw-r--r-- | application/config/migration.php | 2 | ||||
-rw-r--r-- | application/controllers/user.php | 2 | ||||
-rw-r--r-- | application/migrations/012_add_constraints.php | 29 |
4 files changed, 32 insertions, 3 deletions
@@ -23,4 +23,4 @@ * Run the following SQL command in your database: insert into users (username, password, email, referrer) - values ("your_name", "hash_from_above", "you@foo.com", 0); + values ("your_name", "hash_from_above", "you@foo.com", NULL); diff --git a/application/config/migration.php b/application/config/migration.php index 391b6c7c7..d27107cd4 100644 --- a/application/config/migration.php +++ b/application/config/migration.php @@ -21,7 +21,7 @@ $config['migration_enabled'] = true; | be upgraded / downgraded to. | */ -$config['migration_version'] = 11; +$config['migration_version'] = 12; /* diff --git a/application/controllers/user.php b/application/controllers/user.php index 7ebaa0b68..b4e2613ac 100644 --- a/application/controllers/user.php +++ b/application/controllers/user.php @@ -331,7 +331,7 @@ class User extends MY_Controller { $admininfo = $this->db->query(" SELECT email FROM users - WHERE referrer = 0 + WHERE referrer is null ORDER BY id asc LIMIT 1 ")->row_array(); diff --git a/application/migrations/012_add_constraints.php b/application/migrations/012_add_constraints.php new file mode 100644 index 000000000..e0116ea05 --- /dev/null +++ b/application/migrations/012_add_constraints.php @@ -0,0 +1,29 @@ +<?php +defined('BASEPATH') OR exit('No direct script access allowed'); + +class Migration_add_constraints extends CI_Migration { + + public function up() + { + $this->db->query("UPDATE `users` SET `referrer` = NULL where `referrer` = 0;"); + $this->db->query("ALTER TABLE `apikeys` ADD FOREIGN KEY (`user`) + REFERENCES `filebin`.`users`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;"); + $this->db->query("ALTER TABLE `files` ADD FOREIGN KEY (`user`) + REFERENCES `filebin`.`users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;"); + $this->db->query("ALTER TABLE `profiles` ADD FOREIGN KEY (`user`) + REFERENCES `filebin`.`users`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;"); + $this->db->query("ALTER TABLE `actions` ADD FOREIGN KEY (`user`) + REFERENCES `filebin`.`users`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;"); + + $this->db->query("ALTER TABLE `users` ADD INDEX(`referrer`);"); + $this->db->query("ALTER TABLE `users` CHANGE `referrer` `referrer` + INT(8) UNSIGNED NULL;"); + $this->db->query("ALTER TABLE `users` ADD FOREIGN KEY (`referrer`) + REFERENCES `filebin`.`users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;"); + } + + public function down() + { + show_error("downgrade not supported"); + } +} |