initialise_database.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. async def init_db(pg):
  2. queries = [
  3. "CREATE TABLE IF NOT EXISTS \
  4. guild (\
  5. id SERIAL PRIMARY KEY, \
  6. guild_id BIGINT UNIQUE NOT NULL, \
  7. output_channel BIGINT REFERENCES channel (channel_id), \
  8. report_deleted BOOL DEFAULT FALSE, \
  9. report_edited BOOL DEFAULT FALSE\
  10. )\
  11. ",
  12. "CREATE TABLE IF NOT EXISTS \
  13. channel (\
  14. id SERIAL PRIMARY KEY, \
  15. channel_id BIGINT UNIQUE NOT NULL, \
  16. guild BIGINT REFERENCES guild (guild_id), \
  17. interact BOOL DEFAULT FALSE, \
  18. games BOOL DEFAULT FALSE\
  19. )\
  20. ",
  21. "CREATE TABLE IF NOT EXISTS \
  22. settings (\
  23. id SERIAL PRIMARY KEY, \
  24. crew_channel_id BIGINT UNIQUE NOT NULL\
  25. )\
  26. ",
  27. # "CREATE TABLE IF NOT EXISTS \
  28. # channel_settings (\
  29. # id SERIAL PRIMARY KEY, \
  30. # channel BIGINT UNIQUE NOT NULL REFERENCES channel (channel_id), \
  31. # guild BIGINT REFERENCES guild (guild_id)\
  32. # )\
  33. # ",
  34. "CREATE TABLE IF NOT EXISTS \
  35. \"user\" (\
  36. id SERIAL PRIMARY KEY, \
  37. user_id BIGINT UNIQUE NOT NULL, \
  38. ignore BOOL DEFAULT FALSE, \
  39. level INT DEFAULT 0, \
  40. xp_spent INT DEFAULT 0, \
  41. invites_created INT DEFAULT 0, \
  42. integrations_created INT DEFAULT 0, \
  43. member_updated INT DEFAULT 0, \
  44. user_updated INT DEFAULT 0, \
  45. member_banned INT DEFAULT 0, \
  46. member_unbanned INT DEFAULT 0, \
  47. presence_updated INT DEFAULT 0, \
  48. messages_edited INT DEFAULT 0, \
  49. messages_deleted INT DEFAULT 0, \
  50. reacted INT DEFAULT 0, \
  51. events_created INT DEFAULT 0, \
  52. events_joined INT DEFAULT 0, \
  53. threads_created INT DEFAULT 0, \
  54. threads_joined INT DEFAULT 0, \
  55. ability_points_spent INT DEFAULT 0, \
  56. coin INT DEFAULT 0, \
  57. karma INT DEFAULT 0, \
  58. created TIMESTAMP NOT NULL DEFAULT now()\
  59. )\
  60. ",
  61. "CREATE TABLE IF NOT EXISTS \
  62. guild_access_token (\
  63. id SERIAL PRIMARY KEY, \
  64. guild BIGINT REFERENCES guild (guild_id), \
  65. \"user\" BIGINT NOT NULL REFERENCES \"user\" (user_id), \
  66. token varchar[40] UNIQUE NOT NULL, \
  67. created TIMESTAMP NOT NULL DEFAULT now()\
  68. )\
  69. ",
  70. "CREATE TABLE IF NOT EXISTS \
  71. channel_user (\
  72. id SERIAL PRIMARY KEY, \
  73. channel BIGINT NOT NULL REFERENCES channel (channel_id), \
  74. \"user\" BIGINT NOT NULL REFERENCES \"user\" (user_id), \
  75. total_messages BIGINT DEFAULT 1, \
  76. UNIQUE (channel, \"user\")\
  77. )\
  78. ",
  79. ]
  80. for query in queries:
  81. await pg.execute(query)