aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models.py2
-rw-r--r--migrations/versions/306ce331a2a7_.py26
-rwxr-xr-xutils/bash.sh3
3 files changed, 31 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py
index cd7a88a..3752363 100644
--- a/app/models.py
+++ b/app/models.py
@@ -732,6 +732,8 @@ class PackageRelease(db.Model):
max_rel_id = db.Column(db.Integer, db.ForeignKey("minetest_release.id"), nullable=True, server_default=None)
max_rel = db.relationship("MinetestRelease", foreign_keys=[max_rel_id])
+ # If the release is approved, then the task_id must be null and the url must be present
+ CK_approval_valid = db.CheckConstraint("not approved OR (task_id IS NULL AND (url = '') IS NOT FALSE)")
def getEditURL(self):
return url_for("packages.edit_release",
diff --git a/migrations/versions/306ce331a2a7_.py b/migrations/versions/306ce331a2a7_.py
new file mode 100644
index 0000000..7e7c0ce
--- /dev/null
+++ b/migrations/versions/306ce331a2a7_.py
@@ -0,0 +1,26 @@
+"""empty message
+
+Revision ID: 306ce331a2a7
+Revises: 6dca6eceb04d
+Create Date: 2020-01-18 23:00:40.487425
+
+"""
+from alembic import op
+import sqlalchemy as sa
+from sqlalchemy.dialects import postgresql
+
+# revision identifiers, used by Alembic.
+revision = '306ce331a2a7'
+down_revision = '6dca6eceb04d'
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+ conn = op.get_bind()
+ op.create_check_constraint("CK_approval_valid", "package_release", "not approved OR (task_id IS NULL AND NOT url = '')")
+
+
+def downgrade():
+ conn = op.get_bind()
+ op.drop_constraint("CK_approval_valid", "package_release", type_="check")
diff --git a/utils/bash.sh b/utils/bash.sh
new file mode 100755
index 0000000..f75fc41
--- /dev/null
+++ b/utils/bash.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+docker exec -it contentdb_app_1 bash