summaryrefslogtreecommitdiffstats
path: root/application/migrations/012_add_constraints.php
diff options
context:
space:
mode:
authorRafael Bodill <rafi@sortex.co.il>2014-09-19 17:47:01 +0200
committerRafael Bodill <rafi@sortex.co.il>2014-09-19 17:47:01 +0200
commit0b62a117ca8d34331406a07dc52aa937ff76ace1 (patch)
tree318a5c84cdb11d27017d1cadd1dd517618682fd9 /application/migrations/012_add_constraints.php
parentd2c309aee8189a5d6c2a3fcb0a05ea694d7b646e (diff)
parent75b0a939c7ce24014a8db95a3355d2a7ffdfe3a9 (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.php26
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()