0032_tokendomainpolicy_token_user_and_more.py 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. # Generated by Django 4.1.9 on 2023-06-08 17:33
  2. from django.db import migrations
  3. import pgtrigger.compiler
  4. import pgtrigger.migrations
  5. class Migration(migrations.Migration):
  6. dependencies = [
  7. ("desecapi", "0031_alter_user_email"),
  8. ]
  9. operations = [
  10. pgtrigger.migrations.AddTrigger(
  11. model_name="tokendomainpolicy",
  12. trigger=pgtrigger.compiler.Trigger(
  13. name="token_user",
  14. sql=pgtrigger.compiler.UpsertTriggerSql(
  15. func="NEW.token_user_id = (SELECT user_id FROM desecapi_token WHERE id = NEW.token_id); RETURN NEW;",
  16. hash="38e318cd25ddc9a7e0323d9a15b3c800acf476f8",
  17. operation="UPDATE OR INSERT",
  18. pgid="pgtrigger_token_user_643b3",
  19. table="desecapi_tokendomainpolicy",
  20. when="BEFORE",
  21. ),
  22. ),
  23. ),
  24. pgtrigger.migrations.AddTrigger(
  25. model_name="tokendomainpolicy",
  26. trigger=pgtrigger.compiler.Trigger(
  27. name="default_policy_on_insert",
  28. sql=pgtrigger.compiler.UpsertTriggerSql(
  29. func="IF (NEW.domain_id IS NOT NULL and NOT EXISTS(SELECT * FROM desecapi_tokendomainpolicy WHERE domain_id IS NULL AND token_id = NEW.token_id)) THEN RAISE EXCEPTION 'Cannot insert non-default policy into % table when default policy is not present', TG_TABLE_NAME; END IF; RETURN NEW;",
  30. hash="ac850a5a2d01726a313f57369ad82ffaf7321261",
  31. operation="INSERT",
  32. pgid="pgtrigger_default_policy_on_insert_e01f6",
  33. table="desecapi_tokendomainpolicy",
  34. when="BEFORE",
  35. ),
  36. ),
  37. ),
  38. pgtrigger.migrations.AddTrigger(
  39. model_name="tokendomainpolicy",
  40. trigger=pgtrigger.compiler.Trigger(
  41. name="default_policy_on_update",
  42. sql=pgtrigger.compiler.UpsertTriggerSql(
  43. condition='WHEN (NEW."domain_id" IS NOT NULL AND OLD."domain_id" IS NULL)',
  44. func="RAISE EXCEPTION 'pgtrigger: Cannot update rows from % table', TG_TABLE_NAME;",
  45. hash="50b90c40a204f2165106f2212bc3a8fbb1397226",
  46. operation="UPDATE",
  47. pgid="pgtrigger_default_policy_on_update_6acd4",
  48. table="desecapi_tokendomainpolicy",
  49. when="BEFORE",
  50. ),
  51. ),
  52. ),
  53. pgtrigger.migrations.AddTrigger(
  54. model_name="tokendomainpolicy",
  55. trigger=pgtrigger.compiler.Trigger(
  56. name="default_policy_on_delete",
  57. sql=pgtrigger.compiler.UpsertTriggerSql(
  58. func="IF (OLD.domain_id IS NULL and EXISTS(SELECT * FROM desecapi_tokendomainpolicy WHERE domain_id IS NOT NULL AND token_id = OLD.token_id)) THEN RAISE EXCEPTION 'Cannot delete default policy from % table when non-default policy is present', TG_TABLE_NAME; END IF; RETURN OLD;",
  59. hash="14e0ec9e218138c6a10b5da065a1ab1f253b9312",
  60. operation="DELETE",
  61. pgid="pgtrigger_default_policy_on_delete_a9116",
  62. table="desecapi_tokendomainpolicy",
  63. when="BEFORE",
  64. ),
  65. ),
  66. ),
  67. ]