aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/update-schema1
-rw-r--r--db/downgrade_0041---0040.sql9
-rw-r--r--db/schema.sql6
-rw-r--r--db/schema_0041-remove-permission-types-check.sql4
4 files changed, 15 insertions, 5 deletions
diff --git a/bin/update-schema b/bin/update-schema
index 8f74f34f1..99071f3ea 100755
--- a/bin/update-schema
+++ b/bin/update-schema
@@ -194,6 +194,7 @@ else {
# By querying the database schema, we can see where we're currently at
# (assuming schema change files are never half-applied, which should be the case)
sub get_db_version {
+ return '0041' if column_exists('users', 'is_superuser') && ! constraint_exists('user_body_permissions_permission_type_check');
return '0040' if column_exists('users', 'is_superuser');
return '0039' if column_exists('users', 'facebook_id');
return '0038' if column_exists('admin_log', 'time_spent');
diff --git a/db/downgrade_0041---0040.sql b/db/downgrade_0041---0040.sql
new file mode 100644
index 000000000..13bf083e8
--- /dev/null
+++ b/db/downgrade_0041---0040.sql
@@ -0,0 +1,9 @@
+begin;
+ALTER TABLE user_body_permissions
+ADD CONSTRAINT user_body_permissions_permission_type_check
+CHECK (
+ permission_type='moderate' or
+ -- for future expansion --
+ permission_type='admin'
+);
+commit;
diff --git a/db/schema.sql b/db/schema.sql
index 3f73d2325..f285922ac 100644
--- a/db/schema.sql
+++ b/db/schema.sql
@@ -454,11 +454,7 @@ create table user_body_permissions (
id serial not null primary key,
user_id int references users(id) not null,
body_id int references body(id) not null,
- permission_type text not null check(
- permission_type='moderate' or
- -- for future expansion --
- permission_type='admin'
- ),
+ permission_type text not null,
unique(user_id, body_id, permission_type)
);
diff --git a/db/schema_0041-remove-permission-types-check.sql b/db/schema_0041-remove-permission-types-check.sql
new file mode 100644
index 000000000..2e4c21050
--- /dev/null
+++ b/db/schema_0041-remove-permission-types-check.sql
@@ -0,0 +1,4 @@
+BEGIN;
+ALTER TABLE user_body_permissions
+DROP CONSTRAINT user_body_permissions_permission_type_check;
+COMMIT;