1
0

initialise_database.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. created TIMESTAMP NOT NULL DEFAULT now()\
  56. )\
  57. ",
  58. "CREATE TABLE IF NOT EXISTS \
  59. guild_access_token (\
  60. id SERIAL PRIMARY KEY, \
  61. guild BIGINT REFERENCES guild (guild_id), \
  62. \"user\" BIGINT NOT NULL REFERENCES \"user\" (user_id), \
  63. token varchar[40] UNIQUE NOT NULL, \
  64. created TIMESTAMP NOT NULL DEFAULT now()\
  65. )\
  66. ",
  67. "CREATE TABLE IF NOT EXISTS \
  68. channel_user (\
  69. id SERIAL PRIMARY KEY, \
  70. channel BIGINT NOT NULL REFERENCES channel (channel_id), \
  71. \"user\" BIGINT NOT NULL REFERENCES \"user\" (user_id), \
  72. total_messages BIGINT DEFAULT 1, \
  73. UNIQUE (channel, \"user\")\
  74. )\
  75. ",
  76. ]
  77. for query in queries:
  78. await pg.execute(query)