diff options
author | Rafael Bodill <rafi@sortex.co.il> | 2014-09-19 17:47:01 +0200 |
---|---|---|
committer | Rafael Bodill <rafi@sortex.co.il> | 2014-09-19 17:47:01 +0200 |
commit | 0b62a117ca8d34331406a07dc52aa937ff76ace1 (patch) | |
tree | 318a5c84cdb11d27017d1cadd1dd517618682fd9 /application/migrations/012_add_constraints.php | |
parent | d2c309aee8189a5d6c2a3fcb0a05ea694d7b646e (diff) | |
parent | 75b0a939c7ce24014a8db95a3355d2a7ffdfe3a9 (diff) |
Merge branch 'pgsql_migrations'
* pgsql_migrations:
Optimizing multipaste tables
apikeys.created should be timestamp with default now()
No column based encoding. Reverting dbforge migration
Correcting bracket style for 'if'
Migrations support for PostgreSQL
Diffstat (limited to 'application/migrations/012_add_constraints.php')
-rw-r--r-- | application/migrations/012_add_constraints.php | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/application/migrations/012_add_constraints.php b/application/migrations/012_add_constraints.php index 2b0764fb0..1ed4abf08 100644 --- a/application/migrations/012_add_constraints.php +++ b/application/migrations/012_add_constraints.php @@ -5,12 +5,26 @@ class Migration_add_constraints extends CI_Migration { public function up() { - $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("UPDATE `users` SET `referrer` = NULL where `referrer` = 0;"); - $this->db->query("ALTER TABLE `users` ADD FOREIGN KEY (`referrer`) - REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;"); + if ($this->db->dbdriver == 'postgre') { + $this->db->query('ALTER TABLE "users" ALTER COLUMN "referrer" TYPE integer'); + $this->db->query('ALTER TABLE "users" ALTER COLUMN "referrer" DROP NOT NULL'); + $this->db->query('CREATE INDEX "users_referrer_idx" ON "users" ("referrer")'); + $this->db->query('UPDATE "users" SET "referrer" = NULL where "referrer" = 0'); + $this->db->query(' + ALTER TABLE "users" + ADD CONSTRAINT "referrer_user_fkey" FOREIGN KEY ("referrer") + REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE RESTRICT + '); + + } else { + + $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("UPDATE `users` SET `referrer` = NULL where `referrer` = 0;"); + $this->db->query("ALTER TABLE `users` ADD FOREIGN KEY (`referrer`) + REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;"); + } } public function down() |