Compare commits
	
		
			23 Commits
		
	
	
		
			1.2.1
			...
			b1b74b2551
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b1b74b2551 | |||
| bbad4100dc | |||
| 25df0e4876 | |||
| 4ba40b826a | |||
| 06a0eba5c5 | |||
| fe5b0207c0 | |||
| e01c738cf0 | |||
| d2d59bdad7 | |||
| dd3bfa68c6 | |||
| 4e12ba5ffe | |||
| 35a8b8f592 | |||
| 5c8feed8aa | |||
| e018fdcbdf | |||
| 39b9def76c | |||
| 2801c617f6 | |||
| 5461a6d8dc | |||
| d93c3ad6c7 | |||
| aec7dac4c7 | |||
| 407ec08463 | |||
| 4628f31993 | |||
| 1f2fbc362f | |||
| 666b20d3a9 | |||
| 38093ab817 | 
| @@ -21,7 +21,8 @@ | |||||||
|       "checks": "tools/checks/checks.json", |       "checks": "tools/checks/checks.json", | ||||||
|       "get-version": "tools/get_version/get-version.json", |       "get-version": "tools/get_version/get-version.json", | ||||||
|       "post-build": "tools/post_build/post-build.json", |       "post-build": "tools/post_build/post-build.json", | ||||||
|       "set-version": "tools/set_version/set-version.json" |       "set-version": "tools/set_version/set-version.json", | ||||||
|  |       "migration-to-sql": "tools/migration_to_sql/migration-to-sql.json" | ||||||
|     }, |     }, | ||||||
|     "Scripts": { |     "Scripts": { | ||||||
|       "format": "black ./", |       "format": "black ./", | ||||||
|   | |||||||
 Submodule bot/docker updated: 9c0dc59534...b0bacce9f6
									
								
							| @@ -37,7 +37,8 @@ | |||||||
|     ], |     ], | ||||||
|     "DevDependencies": [ |     "DevDependencies": [ | ||||||
|       "cpl-cli==2023.4.0.post3", |       "cpl-cli==2023.4.0.post3", | ||||||
|       "pygount==1.6.1" |       "pygount==1.6.1", | ||||||
|  |       "black==23.10.1" | ||||||
|     ], |     ], | ||||||
|     "PythonVersion": ">=3.10.4", |     "PythonVersion": ">=3.10.4", | ||||||
|     "PythonPath": {}, |     "PythonPath": {}, | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.abc" | __title__ = 'bot_api.abc' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.controller" | __title__ = 'bot_api.controller' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.event" | __title__ = 'bot_api.event' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.exception" | __title__ = 'bot_api.exception' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.filter" | __title__ = 'bot_api.filter' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.filter.discord" | __title__ = 'bot_api.filter.discord' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.logging" | __title__ = 'bot_api.logging' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.model" | __title__ = 'bot_api.model' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.model.discord" | __title__ = 'bot_api.model.discord' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.route" | __title__ = 'bot_api.route' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.service" | __title__ = 'bot_api.service' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_api.transformer" | __title__ = 'bot_api.transformer' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_core" | __title__ = 'bot_core' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_core.abc" | __title__ = 'bot_core.abc' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_core.configuration" | __title__ = 'bot_core.configuration' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_core.core_extension" | __title__ = 'bot_core.core_extension' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_core.events" | __title__ = 'bot_core.events' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_core.exception" | __title__ = 'bot_core.exception' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_core.helper" | __title__ = 'bot_core.helper' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_core.logging" | __title__ = 'bot_core.logging' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_core.pipes" | __title__ = 'bot_core.pipes' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_core.service" | __title__ = 'bot_core.service' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -92,7 +92,7 @@ class DataIntegrityService: | |||||||
|             except Exception as e: |             except Exception as e: | ||||||
|                 self._logger.error(__name__, f"Cannot get user", e) |                 self._logger.error(__name__, f"Cannot get user", e) | ||||||
|  |  | ||||||
|     def _check_servers(self): |     def check_servers(self): | ||||||
|         self._logger.debug(__name__, f"Start checking Servers table") |         self._logger.debug(__name__, f"Start checking Servers table") | ||||||
|         for g in self._bot.guilds: |         for g in self._bot.guilds: | ||||||
|             g: discord.Guild = g |             g: discord.Guild = g | ||||||
| @@ -411,7 +411,7 @@ class DataIntegrityService: | |||||||
|  |  | ||||||
|         await self._check_default_role() |         await self._check_default_role() | ||||||
|         self._check_known_users() |         self._check_known_users() | ||||||
|         self._check_servers() |         self.check_servers() | ||||||
|         self._check_clients() |         self._check_clients() | ||||||
|         self._check_users() |         self._check_users() | ||||||
|         self._check_user_joins() |         self._check_user_joins() | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_data" | __title__ = 'bot_data' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_data.abc" | __title__ = 'bot_data.abc' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
| @@ -1,26 +0,0 @@ | |||||||
| # -*- coding: utf-8 -*- |  | ||||||
|  |  | ||||||
| """ |  | ||||||
| bot sh-edraft.de Discord bot |  | ||||||
| ~~~~~~~~~~~~~~~~~~~ |  | ||||||
|  |  | ||||||
| Discord bot for customers of sh-edraft.de |  | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de |  | ||||||
| :license: MIT, see LICENSE for more details. |  | ||||||
|  |  | ||||||
| """ |  | ||||||
|  |  | ||||||
| __title__ = "bot_data.migration" |  | ||||||
| __author__ = "Sven Heidemann" |  | ||||||
| __license__ = "MIT" |  | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" |  | ||||||
| __version__ = "1.2.1" |  | ||||||
|  |  | ||||||
| from collections import namedtuple |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports |  | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") |  | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") |  | ||||||
| @@ -1,127 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class AchievementsMigration(MigrationABC): |  | ||||||
|     name = "1.1.0_AchievementsMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `Achievements` ( |  | ||||||
|                         `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                         `Name` VARCHAR(255) NOT NULL, |  | ||||||
|                         `Description` VARCHAR(255) NOT NULL, |  | ||||||
|                         `Attribute` VARCHAR(255) NOT NULL, |  | ||||||
|                         `Operator` VARCHAR(255) NOT NULL, |  | ||||||
|                         `Value` VARCHAR(255) NOT NULL, |  | ||||||
|                         `ServerId` BIGINT, |  | ||||||
|                         `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), |  | ||||||
|                         `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), |  | ||||||
|                         PRIMARY KEY(`Id`), |  | ||||||
|                         FOREIGN KEY (`ServerId`) REFERENCES `Servers`(`ServerId`) |  | ||||||
|                     ); |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `AchievementsHistory` |  | ||||||
|                     ( |  | ||||||
|                         `Id`    BIGINT(20)  NOT NULL, |  | ||||||
|                         `Name` VARCHAR(255) NOT NULL, |  | ||||||
|                         `Description` VARCHAR(255) NOT NULL, |  | ||||||
|                         `Attribute` VARCHAR(255) NOT NULL, |  | ||||||
|                         `Operator` VARCHAR(255) NOT NULL, |  | ||||||
|                         `Value` VARCHAR(255) NOT NULL, |  | ||||||
|                         `ServerId` BIGINT, |  | ||||||
|                         `Deleted`   BOOL DEFAULT FALSE, |  | ||||||
|                         `DateFrom`  DATETIME(6) NOT NULL, |  | ||||||
|                         `DateTo`    DATETIME(6) NOT NULL |  | ||||||
|                     ); |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `UserGotAchievements` ( |  | ||||||
|                         `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                         `UserId` BIGINT, |  | ||||||
|                         `AchievementId` BIGINT, |  | ||||||
|                         `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), |  | ||||||
|                         `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), |  | ||||||
|                         PRIMARY KEY(`Id`), |  | ||||||
|                         FOREIGN KEY (`UserId`) REFERENCES `Users`(`UserId`), |  | ||||||
|                         FOREIGN KEY (`AchievementId`) REFERENCES `Achievements`(`Id`) |  | ||||||
|                     ); |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         # A join table history between users and achievements is not necessary. |  | ||||||
|  |  | ||||||
|         self._cursor.execute(str(f"""ALTER TABLE Users ADD MessageCount BIGINT NOT NULL DEFAULT 0 AFTER XP;""")) |  | ||||||
|         self._cursor.execute(str(f"""ALTER TABLE Users ADD ReactionCount BIGINT NOT NULL DEFAULT 0 AFTER XP;""")) |  | ||||||
|         self._cursor.execute(str(f"""ALTER TABLE UsersHistory ADD MessageCount BIGINT NOT NULL DEFAULT 0 AFTER XP;""")) |  | ||||||
|         self._cursor.execute(str(f"""ALTER TABLE UsersHistory ADD ReactionCount BIGINT NOT NULL DEFAULT 0 AFTER XP;""")) |  | ||||||
|  |  | ||||||
|         self._cursor.execute(str(f"""DROP TRIGGER IF EXISTS `TR_AchievementsUpdate`;""")) |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TRIGGER `TR_AchievementsUpdate` |  | ||||||
|                         AFTER UPDATE |  | ||||||
|                         ON `Achievements` |  | ||||||
|                         FOR EACH ROW |  | ||||||
|                     BEGIN |  | ||||||
|                         INSERT INTO `AchievementsHistory` ( |  | ||||||
|                             `Id`, `Name`, `Description`, `Attribute`, `Operator`, `Value`, `ServerId`, `DateFrom`, `DateTo` |  | ||||||
|                         ) |  | ||||||
|                         VALUES ( |  | ||||||
|                             OLD.Id, OLD.Name, OLD.Description, OLD.Attribute, OLD.Operator, OLD.Value, OLD.ServerId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|                         ); |  | ||||||
|                     END; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute(str(f"""DROP TRIGGER IF EXISTS `TR_AchievementsDelete`;""")) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TRIGGER `TR_AchievementsDelete` |  | ||||||
|                         AFTER DELETE |  | ||||||
|                         ON `Achievements` |  | ||||||
|                         FOR EACH ROW |  | ||||||
|                     BEGIN |  | ||||||
|                         INSERT INTO `AchievementsHistory` ( |  | ||||||
|                             `Id`, `Name`, `Description`, `Attribute`, `Operator`, `Value`, `ServerId`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|                         ) |  | ||||||
|                         VALUES ( |  | ||||||
|                             OLD.Id, OLD.Name, OLD.Description, OLD.Attribute, OLD.Operator, OLD.Value, OLD.ServerId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|                         ); |  | ||||||
|                     END; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `Achievements`;") |  | ||||||
|  |  | ||||||
|         self._cursor.execute(str(f"""ALTER TABLE Users DROP COLUMN MessageCount;""")) |  | ||||||
|         self._cursor.execute(str(f"""ALTER TABLE Users DROP COLUMN ReactionCount;""")) |  | ||||||
| @@ -1,38 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class ApiKeyMigration(MigrationABC): |  | ||||||
|     name = "1.0.0_ApiKeyMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `ApiKeys` ( |  | ||||||
|                 `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `Identifier` VARCHAR(255) NOT NULL, |  | ||||||
|                 `Key` VARCHAR(255) NOT NULL, |  | ||||||
|                 `CreatorId` BIGINT NULL, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 PRIMARY KEY(`Id`), |  | ||||||
|                 FOREIGN KEY (`CreatorId`) REFERENCES `Users`(`UserId`), |  | ||||||
|                 CONSTRAINT UC_Identifier_Key UNIQUE (`Identifier`,`Key`), |  | ||||||
|                 CONSTRAINT UC_Key UNIQUE (`Key`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `ApiKeys`;") |  | ||||||
| @@ -1,61 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class ApiMigration(MigrationABC): |  | ||||||
|     name = "0.3_ApiMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `AuthUsers` ( |  | ||||||
|                 `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `FirstName` VARCHAR(255), |  | ||||||
|                 `LastName` VARCHAR(255), |  | ||||||
|                 `EMail` VARCHAR(255), |  | ||||||
|                 `Password` VARCHAR(255), |  | ||||||
|                 `PasswordSalt` VARCHAR(255), |  | ||||||
|                 `RefreshToken` VARCHAR(255), |  | ||||||
|                 `ConfirmationId` VARCHAR(255) DEFAULT NULL, |  | ||||||
|                 `ForgotPasswordId` VARCHAR(255) DEFAULT NULL, |  | ||||||
|                 `OAuthId` VARCHAR(255) DEFAULT NULL, |  | ||||||
|                 `RefreshTokenExpiryTime` DATETIME(6) NOT NULL, |  | ||||||
|                 `AuthRole` INT NOT NULL DEFAULT 0, |  | ||||||
|                 `CreatedAt` DATETIME(6) NOT NULL, |  | ||||||
|                 `LastModifiedAt` DATETIME(6) NOT NULL, |  | ||||||
|                 PRIMARY KEY(`Id`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `AuthUserUsersRelations`( |  | ||||||
|                 `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `AuthUserId` BIGINT DEFAULT NULL, |  | ||||||
|                 `UserId` BIGINT DEFAULT NULL, |  | ||||||
|                 `CreatedAt` DATETIME(6) NOT NULL, |  | ||||||
|                 `LastModifiedAt` DATETIME(6) NOT NULL, |  | ||||||
|                 PRIMARY KEY(`Id`), |  | ||||||
|                 FOREIGN KEY (`AuthUserId`) REFERENCES `AuthUsers`(`Id`), |  | ||||||
|                 FOREIGN KEY (`UserId`) REFERENCES `Users`(`UserId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `AuthUsers`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `AuthUserUsersRelations`;") |  | ||||||
| @@ -1,33 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class AutoRoleFix1Migration(MigrationABC): |  | ||||||
|     name = "0.3.0_AutoRoleFixMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             ALTER TABLE AutoRoles ADD DiscordChannelId BIGINT NOT NULL AFTER ServerId; |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             ALTER TABLE AutoRoles DROP COLUMN DiscordChannelId; |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
| @@ -1,53 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class AutoRoleMigration(MigrationABC): |  | ||||||
|     name = "0.2.1_AutoRoleMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `AutoRoles` ( |  | ||||||
|                 `AutoRoleId` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `ServerId` BIGINT, |  | ||||||
|                 `DiscordMessageId` BIGINT NOT NULL, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 PRIMARY KEY(`AutoRoleId`), |  | ||||||
|                 FOREIGN KEY (`ServerId`) REFERENCES `Servers`(`ServerId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `AutoRoleRules` ( |  | ||||||
|                 `AutoRoleRuleId` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `AutoRoleId` BIGINT, |  | ||||||
|                 `DiscordEmojiName` VARCHAR(64), |  | ||||||
|                 `DiscordRoleId` BIGINT NOT NULL, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 PRIMARY KEY(`AutoRoleRuleId`), |  | ||||||
|                 FOREIGN KEY (`AutoRoleId`) REFERENCES `AutoRoles`(`AutoRoleId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `AutoRole`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `AutoRoleRules`;") |  | ||||||
| @@ -1,84 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class BirthdayMigration(MigrationABC): |  | ||||||
|     name = "1.2.0_BirthdayMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE Users |  | ||||||
|                     ADD Birthday DATE NULL AFTER MessageCount; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE UsersHistory |  | ||||||
|                     ADD Birthday DATE NULL AFTER MessageCount; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._exec(__file__, "users.sql") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Server |  | ||||||
|                     ADD XpForBirthday BIGINT(20) NOT NULL DEFAULT 0 AFTER XpPerAchievement; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_ServerHistory |  | ||||||
|                     ADD XpForBirthday BIGINT(20) NOT NULL DEFAULT 0 AFTER XpPerAchievement; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._exec(__file__, "config/server.sql") |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE Users DROP COLUMN Birthday; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE UsersHistory DROP COLUMN Birthday; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Server DROP COLUMN XpForBirthday; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_ServerHistory DROP COLUMN XpForBirthday; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
| @@ -1,29 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class ConfigFeatureFlagsMigration(MigrationABC): |  | ||||||
|     name = "1.1.0_ConfigFeatureFlagsMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str("""ALTER TABLE CFG_Technician ADD FeatureFlags JSON NULL DEFAULT ('{}') AFTER CacheMaxMessages;""") |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str("""ALTER TABLE CFG_Server ADD FeatureFlags JSON NULL DEFAULT ('{}') AFTER LoginMessageChannelId;""") |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running downgrade") |  | ||||||
|         self._cursor.execute("ALTER TABLE CFG_Technician DROP COLUMN FeatureFlags;") |  | ||||||
|         self._cursor.execute("ALTER TABLE CFG_Server DROP COLUMN FeatureFlags;") |  | ||||||
| @@ -1,145 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class ConfigMigration(MigrationABC): |  | ||||||
|     name = "1.1.0_ConfigMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|         self._server_upgrade() |  | ||||||
|         self._technician_upgrade() |  | ||||||
|  |  | ||||||
|         self._exec(__file__, "config/server.sql") |  | ||||||
|         self._exec(__file__, "config/server_afk_channels.sql") |  | ||||||
|         self._exec(__file__, "config/server_team_roles.sql") |  | ||||||
|         self._exec(__file__, "config/technician.sql") |  | ||||||
|         self._exec(__file__, "config/technician_ids.sql") |  | ||||||
|         self._exec(__file__, "config/technician_ping_urls.sql") |  | ||||||
|  |  | ||||||
|     def _server_upgrade(self): |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `CFG_Server` ( |  | ||||||
|                         `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                         `MessageDeleteTimer` BIGINT NOT NULL DEFAULT 6, |  | ||||||
|                         `NotificationChatId` BIGINT NOT NULL, |  | ||||||
|                         `MaxVoiceStateHours` BIGINT NOT NULL DEFAULT 6, |  | ||||||
|                         `XpPerMessage` BIGINT NOT NULL DEFAULT 1, |  | ||||||
|                         `XpPerReaction` BIGINT NOT NULL DEFAULT 1, |  | ||||||
|                         `MaxMessageXpPerHour` BIGINT NOT NULL DEFAULT 20, |  | ||||||
|                         `XpPerOntimeHour` BIGINT NOT NULL DEFAULT 10, |  | ||||||
|                         `XpPerEventParticipation` BIGINT NOT NULL DEFAULT 10, |  | ||||||
|                         `XpPerAchievement` BIGINT NOT NULL DEFAULT 10, |  | ||||||
|                         `AFKCommandChannelId` BIGINT NOT NULL, |  | ||||||
|                         `HelpVoiceChannelId` BIGINT NOT NULL, |  | ||||||
|                         `TeamChannelId` BIGINT NOT NULL, |  | ||||||
|                         `LoginMessageChannelId` BIGINT NOT NULL, |  | ||||||
|                         `ServerId` BIGINT NOT NULL, |  | ||||||
|                         `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), |  | ||||||
|                         `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), |  | ||||||
|                         PRIMARY KEY(`Id`), |  | ||||||
|                         FOREIGN KEY (`ServerId`) REFERENCES `Servers`(`ServerId`) |  | ||||||
|                     ); |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `CFG_ServerAFKChannelIds` ( |  | ||||||
|                         `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                         `ChannelId` BIGINT NOT NULL, |  | ||||||
|                         `ServerId` BIGINT NOT NULL, |  | ||||||
|                         `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), |  | ||||||
|                         `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), |  | ||||||
|                         PRIMARY KEY(`Id`), |  | ||||||
|                         FOREIGN KEY (`ServerId`) REFERENCES `Servers`(`ServerId`) |  | ||||||
|                     ); |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `CFG_ServerTeamRoleIds` ( |  | ||||||
|                         `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                         `RoleId` BIGINT NOT NULL, |  | ||||||
|                         `TeamMemberType` ENUM('Moderator', 'Admin') NOT NULL, |  | ||||||
|                         `ServerId` BIGINT NOT NULL, |  | ||||||
|                         `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), |  | ||||||
|                         `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), |  | ||||||
|                         PRIMARY KEY(`Id`), |  | ||||||
|                         FOREIGN KEY (`ServerId`) REFERENCES `Servers`(`ServerId`) |  | ||||||
|                     ); |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def _technician_upgrade(self): |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `CFG_Technician` ( |  | ||||||
|                         `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                         `HelpCommandReferenceUrl` VARCHAR(255) NOT NULL, |  | ||||||
|                         `WaitForRestart` BIGINT NOT NULL DEFAULT 8, |  | ||||||
|                         `WaitForShutdown` BIGINT NOT NULL DEFAULT 8, |  | ||||||
|                         `CacheMaxMessages` BIGINT NOT NULL DEFAULT 1000000, |  | ||||||
|                         `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), |  | ||||||
|                         `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), |  | ||||||
|                         PRIMARY KEY(`Id`) |  | ||||||
|                     ); |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `CFG_TechnicianPingUrls` ( |  | ||||||
|                         `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                         `URL` VARCHAR(255) NOT NULL, |  | ||||||
|                         `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), |  | ||||||
|                         `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), |  | ||||||
|                         PRIMARY KEY(`Id`) |  | ||||||
|                     ); |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `CFG_TechnicianIds` ( |  | ||||||
|                         `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                         `TechnicianId` BIGINT NOT NULL, |  | ||||||
|                         `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), |  | ||||||
|                         `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), |  | ||||||
|                         PRIMARY KEY(`Id`) |  | ||||||
|                     ); |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running downgrade") |  | ||||||
|         self._server_downgrade() |  | ||||||
|         self._technician_downgrade() |  | ||||||
|  |  | ||||||
|     def _server_downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `CFG_Server`;") |  | ||||||
|  |  | ||||||
|     def _technician_downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `CFG_Technician`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `CFG_TechnicianPingUrls`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `CFG_TechnicianIds`;") |  | ||||||
| @@ -1,56 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class DBHistoryMigration(MigrationABC): |  | ||||||
|     name = "1.0.0_DBHistoryMigration" |  | ||||||
|     prio = 1 |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._exec(__file__, "api_keys.sql") |  | ||||||
|         self._exec(__file__, "auth_users.sql") |  | ||||||
|         self._exec(__file__, "auth_user_users_relation.sql") |  | ||||||
|         self._exec(__file__, "auto_role_rules.sql") |  | ||||||
|         self._exec(__file__, "auto_roles.sql") |  | ||||||
|         self._exec(__file__, "clients.sql") |  | ||||||
|         self._exec(__file__, "game_servers.sql") |  | ||||||
|         self._exec(__file__, "known_users.sql") |  | ||||||
|         self._exec(__file__, "levels.sql") |  | ||||||
|         self._exec(__file__, "servers.sql") |  | ||||||
|         self._exec(__file__, "user_game_idents.sql") |  | ||||||
|         self._exec(__file__, "user_joined_game_servers.sql") |  | ||||||
|         self._exec(__file__, "user_joined_servers.sql") |  | ||||||
|         self._exec(__file__, "user_joined_voice_channel.sql") |  | ||||||
|         self._exec(__file__, "user_message_count_per_hour.sql") |  | ||||||
|         self._exec(__file__, "users.sql") |  | ||||||
|         self._exec(__file__, "user_warnings.sql") |  | ||||||
|  |  | ||||||
|         self._logger.debug(__name__, "Finished history upgrade") |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `ApiKeysHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `AuthUsersHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `AuthUserUsersRelationsHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `AutoRoleRulesHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `AutoRolesHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `ClientsHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `GameServersHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `KnownUsersHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `LevelsHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `ServersHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `UserGameIdentsHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `UserJoinedGameServerHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `UserJoinedServersHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `UserJoinedVoiceChannelHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `UserMessageCountPerHourHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `UsersHistory`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `UserWarningsHistory`;") |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| ALTER TABLE `ApiKeys` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `ApiKeys` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `ApiKeysHistory` |  | ||||||
| ( |  | ||||||
|     `Id`         BIGINT(20)   NOT NULL, |  | ||||||
|     `Identifier` VARCHAR(255) NOT NULL, |  | ||||||
|     `Key`        VARCHAR(255) NOT NULL, |  | ||||||
|     `CreatorId`  BIGINT(20) DEFAULT NULL, |  | ||||||
|     `Deleted`    BOOL       DEFAULT FALSE, |  | ||||||
|     `DateFrom`   DATETIME(6)  NOT NULL, |  | ||||||
|     `DateTo`     DATETIME(6)  NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_ApiKeysUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_ApiKeysUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `ApiKeys` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `ApiKeysHistory` ( |  | ||||||
|         `Id`, `Identifier`, `Key`, `CreatorId`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.Identifier, OLD.Key, OLD.CreatorId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_ApiKeysDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_ApiKeysDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `ApiKeys` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `ApiKeysHistory` ( |  | ||||||
|         `Id`, `Identifier`, `Key`, `CreatorId`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.Identifier, OLD.Key, OLD.CreatorId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| ALTER TABLE `AuthUserUsersRelations` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `AuthUserUsersRelations` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `AuthUserUsersRelationsHistory` |  | ||||||
| ( |  | ||||||
|     `Id`         BIGINT(20)  NOT NULL, |  | ||||||
|     `AuthUserId` BIGINT(20) DEFAULT NULL, |  | ||||||
|     `UserId`     BIGINT(20) DEFAULT NULL, |  | ||||||
|     `Deleted`    BOOL       DEFAULT FALSE, |  | ||||||
|     `DateFrom`   DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`     DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_AuthUserUsersRelationsUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_AuthUserUsersRelationsUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `AuthUserUsersRelations` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `AuthUserUsersRelationsHistory` ( |  | ||||||
|         `Id`, `AuthUserId`, `UserId`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.AuthUserId, OLD.UserId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_AuthUserUsersRelationsDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_AuthUserUsersRelationsDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `AuthUserUsersRelations` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `AuthUserUsersRelationsHistory` ( |  | ||||||
|         `Id`, `AuthUserId`, `UserId`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.AuthUserId, OLD.UserId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,62 +0,0 @@ | |||||||
| ALTER TABLE `AuthUsers` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `AuthUsers` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `AuthUsersHistory` |  | ||||||
| ( |  | ||||||
|     `Id`                     BIGINT(20)  NOT NULL, |  | ||||||
|     `FirstName`              VARCHAR(255)         DEFAULT NULL, |  | ||||||
|     `LastName`               VARCHAR(255)         DEFAULT NULL, |  | ||||||
|     `EMail`                  VARCHAR(255)         DEFAULT NULL, |  | ||||||
|     `Password`               VARCHAR(255)         DEFAULT NULL, |  | ||||||
|     `PasswordSalt`           VARCHAR(255)         DEFAULT NULL, |  | ||||||
|     `RefreshToken`           VARCHAR(255)         DEFAULT NULL, |  | ||||||
|     `ConfirmationId`         VARCHAR(255)         DEFAULT NULL, |  | ||||||
|     `ForgotPasswordId`       VARCHAR(255)         DEFAULT NULL, |  | ||||||
|     `OAuthId`                VARCHAR(255)         DEFAULT NULL, |  | ||||||
|     `RefreshTokenExpiryTime` DATETIME(6) NOT NULL, |  | ||||||
|     `AuthRole`               BIGINT(11)  NOT NULL DEFAULT 0, |  | ||||||
|     `Deleted`                BOOL                 DEFAULT FALSE, |  | ||||||
|     `DateFrom`               DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`                 DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_AuthUsersUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_AuthUsersUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `AuthUsers` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `AuthUsersHistory` ( |  | ||||||
|         `Id`, `FirstName`, `LastName`, `EMail`, `Password`, `PasswordSalt`, |  | ||||||
|         `RefreshToken`, `ConfirmationId`, `ForgotPasswordId`, `OAuthId`, |  | ||||||
|         `RefreshTokenExpiryTime`, `AuthRole`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.FirstName, OLD.LastName, OLD.EMail, OLD.Password, OLD.PasswordSalt, OLD.RefreshToken, |  | ||||||
|         OLD.ConfirmationId, OLD.ForgotPasswordId, OLD.OAuthId, OLD.RefreshTokenExpiryTime, OLD.AuthRole, |  | ||||||
|         OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_AuthUsersDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_AuthUsersDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `AuthUsers` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `AuthUsersHistory` ( |  | ||||||
|         `Id`, `FirstName`, `LastName`, `EMail`, `Password`, `PasswordSalt`, `RefreshToken`, |  | ||||||
|         `ConfirmationId`, `ForgotPasswordId`, `OAuthId`, `RefreshTokenExpiryTime`, |  | ||||||
|         `AuthRole`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.FirstName, OLD.LastName, OLD.EMail, OLD.Password, OLD.PasswordSalt, OLD.RefreshToken, |  | ||||||
|         OLD.ConfirmationId, OLD.ForgotPasswordId, OLD.OAuthId, OLD.RefreshTokenExpiryTime, OLD.AuthRole, TRUE, |  | ||||||
|         OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| ALTER TABLE `AutoRoleRules` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `AutoRoleRules` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `AutoRoleRulesHistory` |  | ||||||
| ( |  | ||||||
|     `Id`   BIGINT(20)  NOT NULL, |  | ||||||
|     `AutoRoleId`       BIGINT(20)  DEFAULT NULL, |  | ||||||
|     `DiscordEmojiName` VARCHAR(64) DEFAULT NULL, |  | ||||||
|     `DiscordRoleId`    BIGINT(20)  NOT NULL, |  | ||||||
|     `Deleted`          BOOL        DEFAULT FALSE, |  | ||||||
|     `DateFrom`         DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`           DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_AutoRoleRulesUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_AutoRoleRulesUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `AutoRoleRules` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `AutoRoleRulesHistory` ( |  | ||||||
|         `Id`, `AutoRoleId`, `DiscordEmojiName`, `DiscordRoleId`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.AutoRoleRuleId, OLD.AutoRoleId, OLD.DiscordEmojiName, OLD.DiscordRoleId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_AutoRoleRulesDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_AutoRoleRulesDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `AutoRoleRules` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `AutoRoleRulesHistory` ( |  | ||||||
|         `Id`, `AutoRoleId`, `DiscordEmojiName`, `DiscordRoleId`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.AutoRoleRuleId, OLD.AutoRoleId, OLD.DiscordEmojiName, OLD.DiscordRoleId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,48 +0,0 @@ | |||||||
| ALTER TABLE `AutoRoles` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `AutoRoles` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `AutoRolesHistory` |  | ||||||
| ( |  | ||||||
|     `Id`       BIGINT(20)  NOT NULL, |  | ||||||
|     `ServerId`         BIGINT(20) DEFAULT NULL, |  | ||||||
|     `DiscordChannelId` BIGINT(20)  NOT NULL, |  | ||||||
|     `DiscordMessageId` BIGINT(20)  NOT NULL, |  | ||||||
|     `Deleted`          BOOL       DEFAULT FALSE, |  | ||||||
|     `DateFrom`         DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`           DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_AutoRolesUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_AutoRolesUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `AutoRoles` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `AutoRolesHistory` ( |  | ||||||
|         `Id`, `ServerId`, `DiscordChannelId`, `DiscordMessageId`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.AutoRoleId, OLD.ServerId, OLD.DiscordChannelId, OLD.DiscordMessageId, OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_AutoRolesDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_AutoRolesDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `AutoRoles` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `AutoRolesHistory` ( |  | ||||||
|         `Id`, `ServerId`, `DiscordChannelId`, `DiscordMessageId`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.AutoRoleId, OLD.ServerId, OLD.DiscordChannelId, OLD.DiscordMessageId, TRUE, OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,54 +0,0 @@ | |||||||
| ALTER TABLE `Clients` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `Clients` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `ClientsHistory` |  | ||||||
| ( |  | ||||||
|     `Id`              BIGINT(20)  NOT NULL, |  | ||||||
|     `DiscordId`       BIGINT(20)  NOT NULL, |  | ||||||
|     `SentMessageCount`      BIGINT(20)  NOT NULL DEFAULT 0, |  | ||||||
|     `ReceivedMessageCount`  BIGINT(20)  NOT NULL DEFAULT 0, |  | ||||||
|     `DeletedMessageCount`   BIGINT(20)  NOT NULL DEFAULT 0, |  | ||||||
|     `ReceivedCommandsCount` BIGINT(20)  NOT NULL DEFAULT 0, |  | ||||||
|     `MovedUsersCount`       BIGINT(20)  NOT NULL DEFAULT 0, |  | ||||||
|     `ServerId`              BIGINT(20)           DEFAULT NULL, |  | ||||||
|     `Deleted`               BOOL                 DEFAULT FALSE, |  | ||||||
|     `DateFrom`              DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`                DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_ClientsUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_ClientsUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `Clients` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `ClientsHistory` ( |  | ||||||
|         `Id`, `DiscordId`, `SentMessageCount`, `ReceivedMessageCount`, `DeletedMessageCount`, |  | ||||||
|         `ReceivedCommandsCount`, `MovedUsersCount`, `ServerId`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.ClientId, OLD.DiscordClientId, OLD.SentMessageCount, OLD.ReceivedMessageCount, OLD.DeletedMessageCount, |  | ||||||
|         OLD.ReceivedCommandsCount, OLD.MovedUsersCount, OLD.ServerId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_ClientsDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_ClientsDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `Clients` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `ClientsHistory` ( |  | ||||||
|         `Id`, `DiscordId`, `SentMessageCount`, `ReceivedMessageCount`, `DeletedMessageCount`, |  | ||||||
|         `ReceivedCommandsCount`, `MovedUsersCount`, `ServerId`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.ClientId, OLD.DiscordClientId, OLD.SentMessageCount, OLD.ReceivedMessageCount, OLD.DeletedMessageCount, |  | ||||||
|         OLD.ReceivedCommandsCount, OLD.MovedUsersCount, OLD.ServerId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,57 +0,0 @@ | |||||||
| CREATE TABLE IF NOT EXISTS `CFG_ServerAFKChannelIdsHistory` |  | ||||||
| ( |  | ||||||
|     `Id`    BIGINT(20)  NOT NULL, |  | ||||||
|     `ChannelId` BIGINT NOT NULL, |  | ||||||
|     `ServerId` BIGINT NOT NULL, |  | ||||||
|     `Deleted` BOOL DEFAULT FALSE, |  | ||||||
|     `DateFrom` DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo` DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_ServerAFKChannelIdsUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_CFG_ServerAFKChannelIdsUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `CFG_ServerAFKChannelIds` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `CFG_ServerAFKChannelIdsHistory` ( |  | ||||||
|         `Id`, |  | ||||||
|         `ChannelId`, |  | ||||||
|         `ServerId`, |  | ||||||
|         `DateFrom`, |  | ||||||
|         `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, |  | ||||||
|         OLD.ChannelId, |  | ||||||
|         OLD.ServerId, |  | ||||||
|         OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_ServerAFKChannelIdsDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_CFG_ServerAFKChannelIdsDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `CFG_ServerAFKChannelIds` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `CFG_ServerAFKChannelIdsHistory` ( |  | ||||||
|         `Id`, |  | ||||||
|         `ChannelId`, |  | ||||||
|         `ServerId`, |  | ||||||
|         `Deleted`, |  | ||||||
|         `DateFrom`, |  | ||||||
|         `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, |  | ||||||
|         OLD.ChannelId, |  | ||||||
|         OLD.ServerId, |  | ||||||
|         TRUE, |  | ||||||
|         OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,62 +0,0 @@ | |||||||
| CREATE TABLE IF NOT EXISTS `CFG_ServerTeamRoleIdsHistory` |  | ||||||
| ( |  | ||||||
|     `Id`    BIGINT(20)  NOT NULL, |  | ||||||
|     `RoleId` BIGINT NOT NULL, |  | ||||||
|     `TeamMemberType` ENUM('Moderator', 'Admin') NOT NULL, |  | ||||||
|     `ServerId` BIGINT NOT NULL, |  | ||||||
|     `Deleted` BOOL DEFAULT FALSE, |  | ||||||
|     `DateFrom` DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo` DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_ServerTeamRoleIdsUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_CFG_ServerTeamRoleIdsUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `CFG_ServerTeamRoleIds` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `CFG_ServerTeamRoleIdsHistory` ( |  | ||||||
|         `Id`, |  | ||||||
|         `RoleId`, |  | ||||||
|         `TeamMemberType`, |  | ||||||
|         `ServerId`, |  | ||||||
|         `DateFrom`, |  | ||||||
|         `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, |  | ||||||
|         OLD.RoleId, |  | ||||||
|         OLD.TeamMemberType, |  | ||||||
|         OLD.ServerId, |  | ||||||
|         OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_ServerTeamRoleIdsDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_CFG_ServerTeamRoleIdsDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `CFG_ServerTeamRoleIds` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `CFG_ServerTeamRoleIdsHistory` ( |  | ||||||
|         `Id`, |  | ||||||
|         `RoleId`, |  | ||||||
|         `TeamMemberType`, |  | ||||||
|         `ServerId`, |  | ||||||
|         `Deleted`, |  | ||||||
|         `DateFrom`, |  | ||||||
|         `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, |  | ||||||
|         OLD.RoleId, |  | ||||||
|         OLD.TeamMemberType, |  | ||||||
|         OLD.ServerId, |  | ||||||
|         TRUE, |  | ||||||
|         OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,52 +0,0 @@ | |||||||
| CREATE TABLE IF NOT EXISTS `CFG_TechnicianIdsHistory` |  | ||||||
| ( |  | ||||||
|     `Id`    BIGINT(20)  NOT NULL, |  | ||||||
|     `TechnicianId` BIGINT NOT NULL, |  | ||||||
|     `Deleted` BOOL DEFAULT FALSE, |  | ||||||
|     `DateFrom` DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo` DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_TechnicianIdsUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_CFG_TechnicianIdsUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `CFG_TechnicianIds` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `CFG_TechnicianIdsHistory` ( |  | ||||||
|         `Id`, |  | ||||||
|         `TechnicianId`, |  | ||||||
|         `DateFrom`, |  | ||||||
|         `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, |  | ||||||
|         OLD.TechnicianId, |  | ||||||
|         OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_TechnicianIdsDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_CFG_TechnicianIdsDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `CFG_TechnicianIds` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `CFG_TechnicianIdsHistory` ( |  | ||||||
|         `Id`, |  | ||||||
|         `TechnicianId`, |  | ||||||
|         `Deleted`, |  | ||||||
|         `DateFrom`, |  | ||||||
|         `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, |  | ||||||
|         OLD.TechnicianId, |  | ||||||
|         TRUE, |  | ||||||
|         OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,52 +0,0 @@ | |||||||
| CREATE TABLE IF NOT EXISTS `CFG_TechnicianPingUrlsHistory` |  | ||||||
| ( |  | ||||||
|     `Id`    BIGINT(20)  NOT NULL, |  | ||||||
|     `URL` VARCHAR(255) NOT NULL, |  | ||||||
|     `Deleted` BOOL DEFAULT FALSE, |  | ||||||
|     `DateFrom` DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo` DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_TechnicianPingUrlsUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_CFG_TechnicianPingUrlsUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `CFG_TechnicianPingUrls` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `CFG_TechnicianPingUrlsHistory` ( |  | ||||||
|         `Id`, |  | ||||||
|         `URL`, |  | ||||||
|         `DateFrom`, |  | ||||||
|         `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, |  | ||||||
|         OLD.URL, |  | ||||||
|         OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_TechnicianPingUrlsDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_CFG_TechnicianPingUrlsDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `CFG_TechnicianPingUrls` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `CFG_TechnicianPingUrlsHistory` ( |  | ||||||
|         `Id`, |  | ||||||
|         `URL`, |  | ||||||
|         `Deleted`, |  | ||||||
|         `DateFrom`, |  | ||||||
|         `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, |  | ||||||
|         OLD.URL, |  | ||||||
|         TRUE, |  | ||||||
|         OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| ALTER TABLE `GameServers` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `GameServers` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `GameServersHistory` |  | ||||||
| ( |  | ||||||
|     `Id`       BIGINT(20)   NOT NULL, |  | ||||||
|     `Name`     VARCHAR(255) NOT NULL, |  | ||||||
|     `ServerId` BIGINT(20)   NOT NULL, |  | ||||||
|     `ApiKeyId` BIGINT(20)   NOT NULL, |  | ||||||
|     `Deleted`  BOOL DEFAULT FALSE, |  | ||||||
|     `DateFrom` DATETIME(6)  NOT NULL, |  | ||||||
|     `DateTo`   DATETIME(6)  NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_GameServersUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_GameServersUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `GameServers` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `GameServersHistory` ( |  | ||||||
|         `Id`, `Name`, `ServerId`, `ApiKeyId`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.Name, OLD.ServerId, OLD.ApiKeyId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_GameServersDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_GameServersDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `GameServers` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `GameServersHistory` ( |  | ||||||
|         `Id`, `Name`, `ServerId`, `ApiKeyId`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.Name, OLD.ServerId, OLD.ApiKeyId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,44 +0,0 @@ | |||||||
| ALTER TABLE `KnownUsers` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `KnownUsers` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `KnownUsersHistory` |  | ||||||
| ( |  | ||||||
|     `Id` BIGINT(20)  NOT NULL, |  | ||||||
|     `DiscordId`   BIGINT(20)  NOT NULL, |  | ||||||
|     `Deleted`     BOOL DEFAULT FALSE, |  | ||||||
|     `DateFrom`    DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`      DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_KnownUsersUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_KnownUsersUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `KnownUsers` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `KnownUsersHistory` ( |  | ||||||
|         `Id`, `DiscordId`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.KnownUserId, OLD.DiscordId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_KnownUsersDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_KnownUsersDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `KnownUsers` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `KnownUsersHistory` ( |  | ||||||
|         `Id`, `DiscordId`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.KnownUserId, OLD.DiscordId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,50 +0,0 @@ | |||||||
| ALTER TABLE `Levels` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `Levels` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `LevelsHistory` |  | ||||||
| ( |  | ||||||
|     `Id`            BIGINT(20)   NOT NULL, |  | ||||||
|     `Name`          VARCHAR(255) NOT NULL, |  | ||||||
|     `Color`         VARCHAR(8)   NOT NULL, |  | ||||||
|     `MinXp`         BIGINT(20)   NOT NULL, |  | ||||||
|     `PermissionInt` BIGINT(20)   NOT NULL, |  | ||||||
|     `ServerId`      BIGINT(20) DEFAULT NULL, |  | ||||||
|     `Deleted`       BOOL       DEFAULT FALSE, |  | ||||||
|     `DateFrom`      DATETIME(6)  NOT NULL, |  | ||||||
|     `DateTo`        DATETIME(6)  NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_LevelsUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_LevelsUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `Levels` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `LevelsHistory` ( |  | ||||||
|         `Id`, `Name`, `Color`, `MinXp`, `PermissionInt`, `ServerId`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.Name, OLD.Color, OLD.MinXp, OLD.PermissionInt, OLD.ServerId, OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_LevelsDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_LevelsDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `Levels` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `LevelsHistory` ( |  | ||||||
|         `Id`, `Name`, `Color`, `MinXp`, `PermissionInt`, `ServerId`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.Name, OLD.Color, OLD.MinXp, OLD.PermissionInt, OLD.ServerId, TRUE, OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,44 +0,0 @@ | |||||||
| ALTER TABLE `Servers` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `Servers` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `ServersHistory` |  | ||||||
| ( |  | ||||||
|     `Id`        BIGINT(20)  NOT NULL, |  | ||||||
|     `DiscordId` BIGINT(20)  NOT NULL, |  | ||||||
|     `Deleted`         BOOL DEFAULT FALSE, |  | ||||||
|     `DateFrom`        DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`          DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_ServersUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_ServersUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `Servers` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `ServersHistory` ( |  | ||||||
|         `Id`, `DiscordId`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.ServerId, OLD.DiscordServerId, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_ServersDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_ServersDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `Servers` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `ServersHistory` ( |  | ||||||
|         `Id`, `DiscordId`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.ServerId, OLD.DiscordServerId, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| ALTER TABLE `UserGameIdents` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `UserGameIdents` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `UserGameIdentsHistory` |  | ||||||
| ( |  | ||||||
|     `Id`           BIGINT(20)   NOT NULL, |  | ||||||
|     `UserId`       BIGINT(20)   NOT NULL, |  | ||||||
|     `GameServerId` BIGINT(20)   NOT NULL, |  | ||||||
|     `Ident`        VARCHAR(255) NOT NULL, |  | ||||||
|     `Deleted`      BOOL DEFAULT FALSE, |  | ||||||
|     `DateFrom`     DATETIME(6)  NOT NULL, |  | ||||||
|     `DateTo`       DATETIME(6)  NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserGameIdentsUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserGameIdentsUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `UserGameIdents` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserGameIdentsHistory` ( |  | ||||||
|         `Id`, `UserId`, `GameServerId`, `Ident`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.UserId, OLD.GameServerId, OLD.Ident, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserGameIdentsDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserGameIdentsDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `UserGameIdents` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserGameIdentsHistory` ( |  | ||||||
|         `Id`, `UserId`, `GameServerId`, `Ident`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.UserId, OLD.GameServerId, OLD.Ident, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,47 +0,0 @@ | |||||||
| ALTER TABLE `UserJoinedGameServer` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `UserJoinedGameServer` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `UserJoinedGameServerHistory` |  | ||||||
| ( |  | ||||||
|     `Id`           BIGINT(20)  NOT NULL, |  | ||||||
|     `UserId`       BIGINT(20)  NOT NULL, |  | ||||||
|     `GameServerId` BIGINT(20)  NOT NULL, |  | ||||||
|     `JoinedOn`     DATETIME(6) NOT NULL, |  | ||||||
|     `LeavedOn`     DATETIME(6) DEFAULT NULL, |  | ||||||
|     `Deleted`      BOOL        DEFAULT FALSE, |  | ||||||
|     `DateFrom`     DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`       DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserJoinedGameServerUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserJoinedGameServerUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `UserJoinedGameServer` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserJoinedGameServerHistory` ( |  | ||||||
|         `Id`, `UserId`, `GameServerId`, `JoinedOn`, `LeavedOn`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.UserId, OLD.GameServerId, OLD.JoinedOn, OLD.LeavedOn, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserJoinedGameServerDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserJoinedGameServerDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `UserJoinedGameServer` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserJoinedGameServerHistory` ( |  | ||||||
|         `Id`, `UserId`, `GameServerId`, `JoinedOn`, `LeavedOn`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.UserId, OLD.GameServerId, OLD.JoinedOn, OLD.LeavedOn, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| ALTER TABLE `UserJoinedServers` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `UserJoinedServers` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `UserJoinedServersHistory` |  | ||||||
| ( |  | ||||||
|     `Id`   BIGINT(20)  NOT NULL, |  | ||||||
|     `UserId`   BIGINT(20)  NOT NULL, |  | ||||||
|     `JoinedOn` DATETIME(6) NOT NULL, |  | ||||||
|     `LeavedOn` DATETIME(6) DEFAULT NULL, |  | ||||||
|     `Deleted`  BOOL        DEFAULT FALSE, |  | ||||||
|     `DateFrom` DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`   DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserJoinedServersUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserJoinedServersUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `UserJoinedServers` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserJoinedServersHistory` ( |  | ||||||
|         `Id`, `UserId`, `JoinedOn`, `LeavedOn`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.JoinId, OLD.UserId, OLD.JoinedOn, OLD.LeavedOn, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserJoinedServersDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserJoinedServersDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `UserJoinedServers` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserJoinedServersHistory` ( |  | ||||||
|         `Id`, `UserId`, `JoinedOn`, `LeavedOn`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.JoinId, OLD.UserId, OLD.JoinedOn, OLD.LeavedOn, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,49 +0,0 @@ | |||||||
| ALTER TABLE `UserJoinedVoiceChannel` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `UserJoinedVoiceChannel` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `UserJoinedVoiceChannelHistory` |  | ||||||
| ( |  | ||||||
|     `Id`           BIGINT(20)  NOT NULL, |  | ||||||
|     `UserId`           BIGINT(20)  NOT NULL, |  | ||||||
|     `DiscordChannelId` BIGINT(20)  NOT NULL, |  | ||||||
|     `JoinedOn`         DATETIME(6) NOT NULL, |  | ||||||
|     `LeavedOn`         DATETIME(6) DEFAULT NULL, |  | ||||||
|     `Deleted`          BOOL        DEFAULT FALSE, |  | ||||||
|     `DateFrom`         DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`           DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserJoinedVoiceChannelUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserJoinedVoiceChannelUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `UserJoinedVoiceChannel` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserJoinedVoiceChannelHistory` ( |  | ||||||
|         `Id`, `UserId`, `DiscordChannelId`, `JoinedOn`, `LeavedOn`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.JoinId, OLD.UserId, OLD.DiscordChannelId, OLD.JoinedOn, OLD.LeavedOn, OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserJoinedVoiceChannelDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserJoinedVoiceChannelDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `UserJoinedVoiceChannel` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserJoinedVoiceChannelHistory` ( |  | ||||||
|         `Id`, `UserId`, `DiscordChannelId`, `JoinedOn`, `LeavedOn`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.JoinId, OLD.UserId, OLD.DiscordChannelId, OLD.JoinedOn, OLD.LeavedOn, TRUE, OLD.LastModifiedAt, |  | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,47 +0,0 @@ | |||||||
| ALTER TABLE `UserMessageCountPerHour` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `UserMessageCountPerHour` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `UserMessageCountPerHourHistory` |  | ||||||
| ( |  | ||||||
|     `Id`       BIGINT(20)  NOT NULL, |  | ||||||
|     `Date`     DATETIME(6) NOT NULL, |  | ||||||
|     `Hour`     BIGINT(20) DEFAULT NULL, |  | ||||||
|     `XPCount`  BIGINT(20) DEFAULT NULL, |  | ||||||
|     `UserId`   BIGINT(20) DEFAULT NULL, |  | ||||||
|     `Deleted`  BOOL       DEFAULT FALSE, |  | ||||||
|     `DateFrom` DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`   DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserMessageCountPerHourUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserMessageCountPerHourUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `UserMessageCountPerHour` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserMessageCountPerHourHistory` ( |  | ||||||
|         `Id`, `UserId`, `Date`, `Hour`, `XPCount`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.UserId, OLD.Date, OLD.Hour, OLD.XPCount, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserMessageCountPerHourDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserMessageCountPerHourDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `UserMessageCountPerHour` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserMessageCountPerHourHistory` ( |  | ||||||
|         `Id`, `UserId`, `Date`, `Hour`, `XPCount`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.UserId, OLD.Date, OLD.Hour, OLD.XPCount, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| ALTER TABLE `UserWarnings` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `UserWarnings` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `UserWarningsHistory` |  | ||||||
| ( |  | ||||||
|     `Id`          BIGINT(20)   NOT NULL, |  | ||||||
|     `Description` VARCHAR(255) NOT NULL, |  | ||||||
|     `UserId`      BIGINT(20)   NOT NULL, |  | ||||||
|     `Author`      BIGINT(20) DEFAULT NULL, |  | ||||||
|     `Deleted`     BOOL       DEFAULT FALSE, |  | ||||||
|     `DateFrom`    DATETIME(6)  NOT NULL, |  | ||||||
|     `DateTo`      DATETIME(6)  NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserWarningsUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserWarningsUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `UserWarnings` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserWarningsHistory` ( |  | ||||||
|         `Id`, `Description`, `UserId`, `Author`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.Description, OLD.UserId, OLD.Author, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UserWarningsDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UserWarningsDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `UserWarnings` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UserWarningsHistory` ( |  | ||||||
|         `Id`, `Description`, `UserId`, `Author`, `Deleted`, `DateFrom`, `DateTo` |  | ||||||
|     ) |  | ||||||
|     VALUES ( |  | ||||||
|         OLD.Id, OLD.Description, OLD.UserId, OLD.Author, TRUE, OLD.LastModifiedAt, CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; |  | ||||||
| @@ -1,45 +0,0 @@ | |||||||
| ALTER TABLE `Users` |  | ||||||
|     CHANGE `CreatedAt` `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| ALTER TABLE `Users` |  | ||||||
|     CHANGE `LastModifiedAt` `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); |  | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `UsersHistory` |  | ||||||
| ( |  | ||||||
|     `Id`            BIGINT(20)  NOT NULL, |  | ||||||
|     `DiscordId`     BIGINT(20)  NOT NULL, |  | ||||||
|     `XP`            BIGINT(20)  NOT NULL DEFAULT 0, |  | ||||||
|     `ReactionCount` BIGINT(20)  NOT NULL DEFAULT 0, |  | ||||||
|     `MessageCount`  BIGINT(20)  NOT NULL DEFAULT 0, |  | ||||||
|     `Birthday`      DATE        NULL, |  | ||||||
|     `ServerId`      BIGINT(20)           DEFAULT NULL, |  | ||||||
|     `Deleted`       BOOL                 DEFAULT FALSE, |  | ||||||
|     `DateFrom`      DATETIME(6) NOT NULL, |  | ||||||
|     `DateTo`        DATETIME(6) NOT NULL |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UsersUpdate`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UsersUpdate` |  | ||||||
|     AFTER UPDATE |  | ||||||
|     ON `Users` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UsersHistory` (`Id`, `DiscordId`, `XP`, `ReactionCount`, `MessageCount`, `Birthday`, `ServerId`, |  | ||||||
|                                 `DateFrom`, `DateTo`) |  | ||||||
|     VALUES (OLD.UserId, OLD.DiscordId, OLD.XP, OLD.ReactionCount, OLD.MessageCount, OLD.Birthday, OLD.ServerId, |  | ||||||
|             OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)); |  | ||||||
| END; |  | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_UsersDelete`; |  | ||||||
|  |  | ||||||
| CREATE TRIGGER `TR_UsersDelete` |  | ||||||
|     AFTER DELETE |  | ||||||
|     ON `Users` |  | ||||||
|     FOR EACH ROW |  | ||||||
| BEGIN |  | ||||||
|     INSERT INTO `UsersHistory` (`Id`, `DiscordId`, `XP`, `ReactionCount`, `MessageCount`, `Birthday`, `ServerId`, |  | ||||||
|                                 `Deleted`, `DateFrom`, `DateTo`) |  | ||||||
|     VALUES (OLD.UserId, OLD.DiscordId, OLD.XP, OLD.ReactionCount, OLD.MessageCount, OLD.Birthday, OLD.ServerId, TRUE, |  | ||||||
|             OLD.LastModifiedAt, CURRENT_TIMESTAMP(6)); |  | ||||||
| END; |  | ||||||
| @@ -1,34 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class DefaultRoleMigration(MigrationABC): |  | ||||||
|     name = "1.1.3_DefaultRoleMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Server |  | ||||||
|                     ADD DefaultRoleId BIGINT NULL AFTER LoginMessageChannelId; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Server DROP COLUMN DefaultRoleId; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class FixUpdatesMigration(MigrationABC): |  | ||||||
|     name = "1.1.7_FixUpdatesMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_ServerHistory |  | ||||||
|                     ADD DefaultRoleId BIGINT NULL AFTER LoginMessageChannelId; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 """ALTER TABLE CFG_TechnicianHistory ADD FeatureFlags JSON NULL DEFAULT ('{}') AFTER CacheMaxMessages;""" |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 """ALTER TABLE CFG_ServerHistory ADD FeatureFlags JSON NULL DEFAULT ('{}') AFTER LoginMessageChannelId;""" |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._exec(__file__, "config/server.sql") |  | ||||||
|         self._exec(__file__, "config/technician.sql") |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_ServerHistory DROP COLUMN DefaultRoleId; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._cursor.execute("ALTER TABLE CFG_TechnicianHistory DROP COLUMN FeatureFlags;") |  | ||||||
|         self._cursor.execute("ALTER TABLE CFG_ServerHistory DROP COLUMN FeatureFlags;") |  | ||||||
| @@ -1,41 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class FixUserHistoryMigration(MigrationABC): |  | ||||||
|     name = "1.2.0_FixUserHistoryMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         # fix 1.1.0_AchievementsMigration |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str(f"""ALTER TABLE UsersHistory ADD COLUMN ReactionCount BIGINT NOT NULL DEFAULT 0 AFTER XP;""") |  | ||||||
|         ) |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str(f"""ALTER TABLE UsersHistory ADD COLUMN MessageCount BIGINT NOT NULL DEFAULT 0 AFTER ReactionCount;""") |  | ||||||
|         ) |  | ||||||
|         self._exec(__file__, "users.sql") |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE UsersHistory DROP COLUMN MessageCount; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE UsersHistory DROP COLUMN ReactionCount; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
| @@ -1,138 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class InitialMigration(MigrationABC): |  | ||||||
|     name = "0.1_InitialMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `MigrationHistory` ( |  | ||||||
|                 `MigrationId` VARCHAR(255), |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 PRIMARY KEY(`MigrationId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `Servers` ( |  | ||||||
|                 `ServerId` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `DiscordServerId` BIGINT NOT NULL, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 PRIMARY KEY(`ServerId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `Users` ( |  | ||||||
|                 `UserId` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `DiscordId` BIGINT NOT NULL, |  | ||||||
|                 `XP` BIGINT NOT NULL DEFAULT 0, |  | ||||||
|                 `ServerId` BIGINT, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 FOREIGN KEY (`ServerId`) REFERENCES Servers(`ServerId`), |  | ||||||
|                 PRIMARY KEY(`UserId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `Clients` ( |  | ||||||
|                 `ClientId` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `DiscordClientId` BIGINT NOT NULL, |  | ||||||
|                 `SentMessageCount` BIGINT NOT NULL DEFAULT 0, |  | ||||||
|                 `ReceivedMessageCount` BIGINT NOT NULL DEFAULT 0, |  | ||||||
|                 `DeletedMessageCount` BIGINT NOT NULL DEFAULT 0, |  | ||||||
|                 `ReceivedCommandsCount` BIGINT NOT NULL DEFAULT 0, |  | ||||||
|                 `MovedUsersCount` BIGINT NOT NULL DEFAULT 0, |  | ||||||
|                 `ServerId` BIGINT, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 FOREIGN KEY (`ServerId`) REFERENCES Servers(`ServerId`), |  | ||||||
|                 PRIMARY KEY(`ClientId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `KnownUsers` ( |  | ||||||
|                 `KnownUserId` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `DiscordId` BIGINT NOT NULL, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 PRIMARY KEY(`KnownUserId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `UserJoinedServers` ( |  | ||||||
|                 `JoinId` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `UserId` BIGINT NOT NULL, |  | ||||||
|                 `JoinedOn` DATETIME(6) NOT NULL, |  | ||||||
|                 `LeavedOn` DATETIME(6), |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 FOREIGN KEY (`UserId`) REFERENCES Users(`UserId`), |  | ||||||
|                 PRIMARY KEY(`JoinId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `UserJoinedVoiceChannel` ( |  | ||||||
|                 `JoinId` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `UserId` BIGINT NOT NULL, |  | ||||||
|                 `DiscordChannelId` BIGINT NOT NULL, |  | ||||||
|                 `JoinedOn` DATETIME(6) NOT NULL, |  | ||||||
|                 `LeavedOn` DATETIME(6), |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 FOREIGN KEY (`UserId`) REFERENCES Users(`UserId`), |  | ||||||
|                 PRIMARY KEY(`JoinId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `Servers`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `Users`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `Clients`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `KnownUsers`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `UserJoinedServers`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `UserJoinedVoiceChannel`;") |  | ||||||
| @@ -1,38 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class LevelMigration(MigrationABC): |  | ||||||
|     name = "0.3_LevelMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `Levels` ( |  | ||||||
|                 `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `Name` VARCHAR(255) NOT NULL, |  | ||||||
|                 `Color` VARCHAR(8) NOT NULL, |  | ||||||
|                 `MinXp` BIGINT NOT NULL, |  | ||||||
|                 `PermissionInt` BIGINT NOT NULL, |  | ||||||
|                 `ServerId` BIGINT, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 PRIMARY KEY(`Id`), |  | ||||||
|                 FOREIGN KEY (`ServerId`) REFERENCES `Servers`(`ServerId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `Levels`;") |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class MaintenanceModeMigration(MigrationABC): |  | ||||||
|     name = "1.2.0_MaintenanceModeMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Technician |  | ||||||
|                     ADD Maintenance BOOLEAN DEFAULT FALSE AFTER MaxSteamOfferCount; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_TechnicianHistory |  | ||||||
|                     ADD Maintenance BOOLEAN DEFAULT FALSE AFTER MaxSteamOfferCount; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._exec(__file__, "config/technician.sql") |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Technician DROP COLUMN Maintenance; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_TechnicianHistory DROP COLUMN Maintenance; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class MaxSteamOfferCountMigration(MigrationABC): |  | ||||||
|     name = "1.2.0_MaxSteamOfferCountMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Technician |  | ||||||
|                     ADD MaxSteamOfferCount BIGINT NOT NULL DEFAULT 250 AFTER CacheMaxMessages; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_TechnicianHistory |  | ||||||
|                     ADD MaxSteamOfferCount BIGINT NOT NULL DEFAULT 250 AFTER CacheMaxMessages; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._exec(__file__, "config/technician.sql") |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Technician DROP COLUMN MaxSteamOfferCount; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_TechnicianHistory DROP COLUMN MaxSteamOfferCount; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
| @@ -1,43 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class RemoveStatsMigration(MigrationABC): |  | ||||||
|     name = "1.0.0_RemoveStatsMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     DROP TABLE IF EXISTS `Statistics`; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `Statistics` ( |  | ||||||
|                         `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                         `Name` VARCHAR(255) NOT NULL, |  | ||||||
|                         `Description` VARCHAR(255) NOT NULL, |  | ||||||
|                         `Code` LONGTEXT NOT NULL, |  | ||||||
|                         `ServerId` BIGINT, |  | ||||||
|                         `CreatedAt` DATETIME(6), |  | ||||||
|                         `LastModifiedAt` DATETIME(6), |  | ||||||
|                         PRIMARY KEY(`Id`), |  | ||||||
|                         FOREIGN KEY (`ServerId`) REFERENCES `Servers`(`ServerId`) |  | ||||||
|                     ); |  | ||||||
|                     """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
| @@ -1,40 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class ShortRoleNameMigration(MigrationABC): |  | ||||||
|     name = "1.1.7_ShortRoleNameMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `ShortRoleNames` ( |  | ||||||
|                         `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                         `ShortName` VARCHAR(255) NOT NULL, |  | ||||||
|                         `DiscordRoleId` BIGINT NOT NULL, |  | ||||||
|                         `Position` ENUM('before', 'after') NOT NULL, |  | ||||||
|                         `ServerId` BIGINT, |  | ||||||
|                         `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), |  | ||||||
|                         `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), |  | ||||||
|                         PRIMARY KEY(`Id`), |  | ||||||
|                         FOREIGN KEY (`ServerId`) REFERENCES `Servers`(`ServerId`) |  | ||||||
|                     ); |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._exec(__file__, "short_rule_names.sql") |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `ShortRoleNames`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `ShortRoleNamesHistory`;") |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class ShortRoleNameOnlyHighestMigration(MigrationABC): |  | ||||||
|     name = "1.1.9_ShortRoleNameOnlyHighestMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Server |  | ||||||
|                     ADD ShortRoleNameSetOnlyHighest BOOLEAN NOT NULL DEFAULT FALSE AFTER DefaultRoleId; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_ServerHistory |  | ||||||
|                     ADD ShortRoleNameSetOnlyHighest BOOLEAN NOT NULL DEFAULT FALSE AFTER DefaultRoleId; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._exec(__file__, "config/server.sql") |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Server DROP COLUMN ShortRoleNameSetOnlyHighest; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_ServerHistory DROP COLUMN ShortRoleNameSetOnlyHighest; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
| @@ -1,37 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class StatsMigration(MigrationABC): |  | ||||||
|     name = "0.3_StatsMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `Statistics` ( |  | ||||||
|                 `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `Name` VARCHAR(255) NOT NULL, |  | ||||||
|                 `Description` VARCHAR(255) NOT NULL, |  | ||||||
|                 `Code` LONGTEXT NOT NULL, |  | ||||||
|                 `ServerId` BIGINT, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 PRIMARY KEY(`Id`), |  | ||||||
|                 FOREIGN KEY (`ServerId`) REFERENCES `Servers`(`ServerId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `Statistics`;") |  | ||||||
| @@ -1,68 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class SteamSpecialOfferMigration(MigrationABC): |  | ||||||
|     name = "1.2.0_SteamSpecialOfferMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     CREATE TABLE IF NOT EXISTS `SteamSpecialOffers` ( |  | ||||||
|                         `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                         `Game` VARCHAR(255) NOT NULL, |  | ||||||
|                         `OriginalPrice` FLOAT NOT NULL, |  | ||||||
|                         `DiscountPrice` FLOAT NOT NULL, |  | ||||||
|                         `DiscountPct` BIGINT NOT NULL, |  | ||||||
|                         `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), |  | ||||||
|                         `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), |  | ||||||
|                         PRIMARY KEY(`Id`) |  | ||||||
|                     ); |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Server |  | ||||||
|                     ADD COLUMN GameOfferNotificationChatId BIGINT NULL AFTER ShortRoleNameSetOnlyHighest; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_ServerHistory |  | ||||||
|                     ADD COLUMN GameOfferNotificationChatId BIGINT NULL AFTER ShortRoleNameSetOnlyHighest; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `SteamSpecialOffers`;") |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_Server DROP COLUMN ShortRoleNameSetOnlyHighest; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                     ALTER TABLE CFG_ServerHistory DROP COLUMN ShortRoleNameSetOnlyHighest; |  | ||||||
|                 """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
| @@ -1,77 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class UserJoinedGameServerMigration(MigrationABC): |  | ||||||
|     name = "1.0.0_UserJoinedGameServerMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                 CREATE TABLE IF NOT EXISTS `GameServers` ( |  | ||||||
|                 `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `Name` VARCHAR(255) NOT NULL, |  | ||||||
|                 `ServerId` BIGINT NOT NULL, |  | ||||||
|                 `ApiKeyId` BIGINT NOT NULL, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 FOREIGN KEY (`ServerId`) REFERENCES Servers(`ServerId`), |  | ||||||
|                 FOREIGN KEY (`ApiKeyId`) REFERENCES ApiKeys(`Id`), |  | ||||||
|                 PRIMARY KEY(`Id`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                 CREATE TABLE IF NOT EXISTS `UserJoinedGameServer` ( |  | ||||||
|                 `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `UserId` BIGINT NOT NULL, |  | ||||||
|                 `GameServerId` BIGINT NOT NULL, |  | ||||||
|                 `JoinedOn` DATETIME(6) NOT NULL, |  | ||||||
|                 `LeavedOn` DATETIME(6), |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 FOREIGN KEY (`UserId`) REFERENCES Users(`UserId`), |  | ||||||
|                 FOREIGN KEY (`GameServerId`) REFERENCES GameServers(`Id`), |  | ||||||
|                 PRIMARY KEY(`Id`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|                 CREATE TABLE IF NOT EXISTS `UserGameIdents` ( |  | ||||||
|                 `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `UserId` BIGINT NOT NULL, |  | ||||||
|                 `GameServerId` BIGINT NOT NULL, |  | ||||||
|                 `Ident` VARCHAR(255) NOT NULL, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 FOREIGN KEY (`UserId`) REFERENCES Users(`UserId`), |  | ||||||
|                 FOREIGN KEY (`GameServerId`) REFERENCES GameServers(`Id`), |  | ||||||
|                 CONSTRAINT UC_UserGameIdent UNIQUE (`GameServerId`,`Ident`), |  | ||||||
|                 PRIMARY KEY(`Id`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `GameServers`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `UserJoinedGameServer`;") |  | ||||||
|         self._cursor.execute("DROP TABLE `UserGameIdents`;") |  | ||||||
| @@ -1,37 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class UserMessageCountPerHourMigration(MigrationABC): |  | ||||||
|     name = "0.3.1_UserMessageCountPerHourMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `UserMessageCountPerHour` ( |  | ||||||
|                 `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `Date` DATETIME(6) NOT NULL, |  | ||||||
|                 `Hour` BIGINT, |  | ||||||
|                 `XPCount` BIGINT, |  | ||||||
|                 `UserId` BIGINT, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 PRIMARY KEY(`Id`), |  | ||||||
|                 FOREIGN KEY (`UserId`) REFERENCES `Users`(`UserId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `UserMessageCountPerHour`;") |  | ||||||
| @@ -1,37 +0,0 @@ | |||||||
| from bot_core.logging.database_logger import DatabaseLogger |  | ||||||
| from bot_data.abc.migration_abc import MigrationABC |  | ||||||
| from bot_data.db_context import DBContext |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class UserWarningMigration(MigrationABC): |  | ||||||
|     name = "1.0.0_UserWarningMigration" |  | ||||||
|  |  | ||||||
|     def __init__(self, logger: DatabaseLogger, db: DBContext): |  | ||||||
|         MigrationABC.__init__(self) |  | ||||||
|         self._logger = logger |  | ||||||
|         self._db = db |  | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def upgrade(self): |  | ||||||
|         self._logger.debug(__name__, "Running upgrade") |  | ||||||
|  |  | ||||||
|         self._cursor.execute( |  | ||||||
|             str( |  | ||||||
|                 f""" |  | ||||||
|             CREATE TABLE IF NOT EXISTS `UserWarnings` ( |  | ||||||
|                 `Id` BIGINT NOT NULL AUTO_INCREMENT, |  | ||||||
|                 `Description` VARCHAR(255) NOT NULL, |  | ||||||
|                 `UserId` BIGINT NOT NULL, |  | ||||||
|                 `Author` BIGINT NULL, |  | ||||||
|                 `CreatedAt` DATETIME(6), |  | ||||||
|                 `LastModifiedAt` DATETIME(6), |  | ||||||
|                 PRIMARY KEY(`Id`), |  | ||||||
|                 FOREIGN KEY (`UserId`) REFERENCES `Users`(`UserId`), |  | ||||||
|                 FOREIGN KEY (`Author`) REFERENCES `Users`(`UserId`) |  | ||||||
|             ); |  | ||||||
|             """ |  | ||||||
|             ) |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|     def downgrade(self): |  | ||||||
|         self._cursor.execute("DROP TABLE `UserWarnings`;") |  | ||||||
| @@ -11,16 +11,16 @@ Discord bot for customers of sh-edraft.de | |||||||
|  |  | ||||||
| """ | """ | ||||||
|  |  | ||||||
| __title__ = "bot_data.model" | __title__ = 'bot_data.model' | ||||||
| __author__ = "Sven Heidemann" | __author__ = 'Sven Heidemann' | ||||||
| __license__ = "MIT" | __license__ = 'MIT' | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' | ||||||
| __version__ = "1.2.1" | __version__ = '1.2.1' | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
|  |  | ||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple('VersionInfo', 'major minor micro') | ||||||
| version_info = VersionInfo(major="1", minor="2", micro="1") | version_info = VersionInfo(major='1', minor='2', micro='1') | ||||||
|   | |||||||
							
								
								
									
										17
									
								
								bot/src/bot_data/model/migration.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								bot/src/bot_data/model/migration.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | class Migration: | ||||||
|  |     def __init__(self, name: str, version: str, script: str): | ||||||
|  |         self._name = name | ||||||
|  |         self._version = version | ||||||
|  |         self._script = script | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def name(self) -> str: | ||||||
|  |         return self._name | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def version(self) -> str: | ||||||
|  |         return self._version | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def script(self) -> str: | ||||||
|  |         return self._script | ||||||
| @@ -2,10 +2,12 @@ from cpl_core.database import TableABC | |||||||
|  |  | ||||||
|  |  | ||||||
| class MigrationHistory(TableABC): | class MigrationHistory(TableABC): | ||||||
|     def __init__(self, id: str): |     def __init__(self, id: str, created_at=None, modified_at=None): | ||||||
|         self._id = id |         self._id = id | ||||||
|  |  | ||||||
|         TableABC.__init__(self) |         TableABC.__init__(self) | ||||||
|  |         self._created_at = created_at if created_at is not None else self._created_at | ||||||
|  |         self._modified_at = modified_at if modified_at is not None else self._modified_at | ||||||
|  |  | ||||||
|     @property |     @property | ||||||
|     def migration_id(self) -> str: |     def migration_id(self) -> str: | ||||||
| @@ -39,7 +41,17 @@ class MigrationHistory(TableABC): | |||||||
|         return str( |         return str( | ||||||
|             f""" |             f""" | ||||||
|             UPDATE `MigrationHistory` |             UPDATE `MigrationHistory` | ||||||
|             SET LastModifiedAt` = '{self._modified_at}' |             SET `LastModifiedAt` = '{self._modified_at}' | ||||||
|  |             WHERE `MigrationId` = '{self._id}'; | ||||||
|  |         """ | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     def change_id_string(self, new_name: str) -> str: | ||||||
|  |         return str( | ||||||
|  |             f""" | ||||||
|  |             UPDATE `MigrationHistory` | ||||||
|  |             SET `LastModifiedAt` = '{self._modified_at}', | ||||||
|  |             `MigrationId` = '{new_name}' | ||||||
|             WHERE `MigrationId` = '{self._id}'; |             WHERE `MigrationId` = '{self._id}'; | ||||||
|         """ |         """ | ||||||
|         ) |         ) | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								bot/src/bot_data/scripts/0.1.0/1_Initial_down.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								bot/src/bot_data/scripts/0.1.0/1_Initial_down.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | DROP TABLE `Servers`; | ||||||
|  |  | ||||||
|  | DROP TABLE `Users`; | ||||||
|  |  | ||||||
|  | DROP TABLE `Clients`; | ||||||
|  |  | ||||||
|  | DROP TABLE `KnownUsers`; | ||||||
|  |  | ||||||
|  | DROP TABLE `UserJoinedServers`; | ||||||
|  |  | ||||||
|  | DROP TABLE `UserJoinedVoiceChannel`; | ||||||
|  |  | ||||||
							
								
								
									
										80
									
								
								bot/src/bot_data/scripts/0.1.0/1_Initial_up.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								bot/src/bot_data/scripts/0.1.0/1_Initial_up.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,80 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `MigrationHistory` | ||||||
|  | ( | ||||||
|  |     `MigrationId`    VARCHAR(255), | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     PRIMARY KEY (`MigrationId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `Servers` | ||||||
|  | ( | ||||||
|  |     `ServerId`        BIGINT NOT NULL AUTO_INCREMENT, | ||||||
|  |     `DiscordServerId` BIGINT NOT NULL, | ||||||
|  |     `CreatedAt`       DATETIME(6), | ||||||
|  |     `LastModifiedAt`  DATETIME(6), | ||||||
|  |     PRIMARY KEY (`ServerId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `Users` | ||||||
|  | ( | ||||||
|  |     `UserId`         BIGINT NOT NULL AUTO_INCREMENT, | ||||||
|  |     `DiscordId`      BIGINT NOT NULL, | ||||||
|  |     `XP`             BIGINT NOT NULL DEFAULT 0, | ||||||
|  |     `ServerId`       BIGINT, | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     FOREIGN KEY (`ServerId`) REFERENCES Servers (`ServerId`), | ||||||
|  |     PRIMARY KEY (`UserId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `Clients` | ||||||
|  | ( | ||||||
|  |     `ClientId`              BIGINT NOT NULL AUTO_INCREMENT, | ||||||
|  |     `DiscordClientId`       BIGINT NOT NULL, | ||||||
|  |     `SentMessageCount`      BIGINT NOT NULL DEFAULT 0, | ||||||
|  |     `ReceivedMessageCount`  BIGINT NOT NULL DEFAULT 0, | ||||||
|  |     `DeletedMessageCount`   BIGINT NOT NULL DEFAULT 0, | ||||||
|  |     `ReceivedCommandsCount` BIGINT NOT NULL DEFAULT 0, | ||||||
|  |     `MovedUsersCount`       BIGINT NOT NULL DEFAULT 0, | ||||||
|  |     `ServerId`              BIGINT, | ||||||
|  |     `CreatedAt`             DATETIME(6), | ||||||
|  |     `LastModifiedAt`        DATETIME(6), | ||||||
|  |     FOREIGN KEY (`ServerId`) REFERENCES Servers (`ServerId`), | ||||||
|  |     PRIMARY KEY (`ClientId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `KnownUsers` | ||||||
|  | ( | ||||||
|  |     `KnownUserId`    BIGINT NOT NULL AUTO_INCREMENT, | ||||||
|  |     `DiscordId`      BIGINT NOT NULL, | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     PRIMARY KEY (`KnownUserId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `UserJoinedServers` | ||||||
|  | ( | ||||||
|  |     `JoinId`         BIGINT      NOT NULL AUTO_INCREMENT, | ||||||
|  |     `UserId`         BIGINT      NOT NULL, | ||||||
|  |     `JoinedOn`       DATETIME(6) NOT NULL, | ||||||
|  |     `LeavedOn`       DATETIME(6), | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     FOREIGN KEY (`UserId`) REFERENCES Users (`UserId`), | ||||||
|  |     PRIMARY KEY (`JoinId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `UserJoinedVoiceChannel` | ||||||
|  | ( | ||||||
|  |     `JoinId`           BIGINT      NOT NULL AUTO_INCREMENT, | ||||||
|  |     `UserId`           BIGINT      NOT NULL, | ||||||
|  |     `DiscordChannelId` BIGINT      NOT NULL, | ||||||
|  |     `JoinedOn`         DATETIME(6) NOT NULL, | ||||||
|  |     `LeavedOn`         DATETIME(6), | ||||||
|  |     `CreatedAt`        DATETIME(6), | ||||||
|  |     `LastModifiedAt`   DATETIME(6), | ||||||
|  |     FOREIGN KEY (`UserId`) REFERENCES Users (`UserId`), | ||||||
|  |     PRIMARY KEY (`JoinId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								bot/src/bot_data/scripts/0.2.2/1_AutoRole_down.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								bot/src/bot_data/scripts/0.2.2/1_AutoRole_down.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | DROP TABLE `AutoRoleRules`; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | DROP TABLE `AutoRoles`; | ||||||
							
								
								
									
										26
									
								
								bot/src/bot_data/scripts/0.2.2/1_AutoRole_up.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								bot/src/bot_data/scripts/0.2.2/1_AutoRole_up.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `AutoRoles` | ||||||
|  | ( | ||||||
|  |     `AutoRoleId`       BIGINT NOT NULL AUTO_INCREMENT, | ||||||
|  |     `ServerId`         BIGINT, | ||||||
|  |     `DiscordMessageId` BIGINT NOT NULL, | ||||||
|  |     `CreatedAt`        DATETIME(6), | ||||||
|  |     `LastModifiedAt`   DATETIME(6), | ||||||
|  |     PRIMARY KEY (`AutoRoleId`), | ||||||
|  |     FOREIGN KEY (`ServerId`) REFERENCES `Servers` (`ServerId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `AutoRoleRules` | ||||||
|  | ( | ||||||
|  |     `AutoRoleRuleId`   BIGINT NOT NULL AUTO_INCREMENT, | ||||||
|  |     `AutoRoleId`       BIGINT, | ||||||
|  |     `DiscordEmojiName` VARCHAR(64), | ||||||
|  |     `DiscordRoleId`    BIGINT NOT NULL, | ||||||
|  |     `CreatedAt`        DATETIME(6), | ||||||
|  |     `LastModifiedAt`   DATETIME(6), | ||||||
|  |     PRIMARY KEY (`AutoRoleRuleId`), | ||||||
|  |     FOREIGN KEY (`AutoRoleId`) REFERENCES `AutoRoles` (`AutoRoleId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								bot/src/bot_data/scripts/0.3.0/1_Api_down.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								bot/src/bot_data/scripts/0.3.0/1_Api_down.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | DROP TABLE `AuthUserUsersRelations`; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | DROP TABLE `AuthUsers`; | ||||||
							
								
								
									
										34
									
								
								bot/src/bot_data/scripts/0.3.0/1_Api_up.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								bot/src/bot_data/scripts/0.3.0/1_Api_up.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `AuthUsers` | ||||||
|  | ( | ||||||
|  |     `Id`                     BIGINT      NOT NULL AUTO_INCREMENT, | ||||||
|  |     `FirstName`              VARCHAR(255), | ||||||
|  |     `LastName`               VARCHAR(255), | ||||||
|  |     `EMail`                  VARCHAR(255), | ||||||
|  |     `Password`               VARCHAR(255), | ||||||
|  |     `PasswordSalt`           VARCHAR(255), | ||||||
|  |     `RefreshToken`           VARCHAR(255), | ||||||
|  |     `ConfirmationId`         VARCHAR(255)         DEFAULT NULL, | ||||||
|  |     `ForgotPasswordId`       VARCHAR(255)         DEFAULT NULL, | ||||||
|  |     `OAuthId`                VARCHAR(255)         DEFAULT NULL, | ||||||
|  |     `RefreshTokenExpiryTime` DATETIME(6) NOT NULL, | ||||||
|  |     `AuthRole`               INT         NOT NULL DEFAULT 0, | ||||||
|  |     `CreatedAt`              DATETIME(6) NOT NULL, | ||||||
|  |     `LastModifiedAt`         DATETIME(6) NOT NULL, | ||||||
|  |     PRIMARY KEY (`Id`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `AuthUserUsersRelations` | ||||||
|  | ( | ||||||
|  |     `Id`             BIGINT      NOT NULL AUTO_INCREMENT, | ||||||
|  |     `AuthUserId`     BIGINT DEFAULT NULL, | ||||||
|  |     `UserId`         BIGINT DEFAULT NULL, | ||||||
|  |     `CreatedAt`      DATETIME(6) NOT NULL, | ||||||
|  |     `LastModifiedAt` DATETIME(6) NOT NULL, | ||||||
|  |     PRIMARY KEY (`Id`), | ||||||
|  |     FOREIGN KEY (`AuthUserId`) REFERENCES `AuthUsers` (`Id`), | ||||||
|  |     FOREIGN KEY (`UserId`) REFERENCES `Users` (`UserId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								bot/src/bot_data/scripts/0.3.0/2_Level_down.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								bot/src/bot_data/scripts/0.3.0/2_Level_down.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | DROP TABLE `Levels`; | ||||||
|  |  | ||||||
							
								
								
									
										15
									
								
								bot/src/bot_data/scripts/0.3.0/2_Level_up.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								bot/src/bot_data/scripts/0.3.0/2_Level_up.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `Levels` | ||||||
|  | ( | ||||||
|  |     `Id`             BIGINT       NOT NULL AUTO_INCREMENT, | ||||||
|  |     `Name`           VARCHAR(255) NOT NULL, | ||||||
|  |     `Color`          VARCHAR(8)   NOT NULL, | ||||||
|  |     `MinXp`          BIGINT       NOT NULL, | ||||||
|  |     `PermissionInt`  BIGINT       NOT NULL, | ||||||
|  |     `ServerId`       BIGINT, | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     PRIMARY KEY (`Id`), | ||||||
|  |     FOREIGN KEY (`ServerId`) REFERENCES `Servers` (`ServerId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								bot/src/bot_data/scripts/0.3.0/3_Stats_down.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								bot/src/bot_data/scripts/0.3.0/3_Stats_down.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | DROP TABLE `Statistics`; | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								bot/src/bot_data/scripts/0.3.0/3_Stats_up.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								bot/src/bot_data/scripts/0.3.0/3_Stats_up.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `Statistics` | ||||||
|  | ( | ||||||
|  |     `Id`             BIGINT       NOT NULL AUTO_INCREMENT, | ||||||
|  |     `Name`           VARCHAR(255) NOT NULL, | ||||||
|  |     `Description`    VARCHAR(255) NOT NULL, | ||||||
|  |     `Code`           LONGTEXT     NOT NULL, | ||||||
|  |     `ServerId`       BIGINT, | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     PRIMARY KEY (`Id`), | ||||||
|  |     FOREIGN KEY (`ServerId`) REFERENCES `Servers` (`ServerId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								bot/src/bot_data/scripts/0.3.0/4_AutoRoleFix1_down.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								bot/src/bot_data/scripts/0.3.0/4_AutoRoleFix1_down.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | ALTER TABLE AutoRoles | ||||||
|  |     DROP COLUMN DiscordChannelId; | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								bot/src/bot_data/scripts/0.3.0/4_AutoRoleFix1_up.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								bot/src/bot_data/scripts/0.3.0/4_AutoRoleFix1_up.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | ALTER TABLE AutoRoles | ||||||
|  |     ADD DiscordChannelId BIGINT NOT NULL AFTER ServerId; | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -0,0 +1,2 @@ | |||||||
|  | DROP TABLE `UserMessageCountPerHour`; | ||||||
|  |  | ||||||
| @@ -0,0 +1,14 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `UserMessageCountPerHour` | ||||||
|  | ( | ||||||
|  |     `Id`             BIGINT      NOT NULL AUTO_INCREMENT, | ||||||
|  |     `Date`           DATETIME(6) NOT NULL, | ||||||
|  |     `Hour`           BIGINT, | ||||||
|  |     `XPCount`        BIGINT, | ||||||
|  |     `UserId`         BIGINT, | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     PRIMARY KEY (`Id`), | ||||||
|  |     FOREIGN KEY (`UserId`) REFERENCES `Users` (`UserId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								bot/src/bot_data/scripts/1.0.0/1_ApiKey_down.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								bot/src/bot_data/scripts/1.0.0/1_ApiKey_down.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | DROP TABLE `ApiKeys`; | ||||||
|  |  | ||||||
							
								
								
									
										15
									
								
								bot/src/bot_data/scripts/1.0.0/1_ApiKey_up.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								bot/src/bot_data/scripts/1.0.0/1_ApiKey_up.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `ApiKeys` | ||||||
|  | ( | ||||||
|  |     `Id`             BIGINT       NOT NULL AUTO_INCREMENT, | ||||||
|  |     `Identifier`     VARCHAR(255) NOT NULL, | ||||||
|  |     `Key`            VARCHAR(255) NOT NULL, | ||||||
|  |     `CreatorId`      BIGINT       NULL, | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     PRIMARY KEY (`Id`), | ||||||
|  |     FOREIGN KEY (`CreatorId`) REFERENCES `Users` (`UserId`), | ||||||
|  |     CONSTRAINT UC_Identifier_Key UNIQUE (`Identifier`, `Key`), | ||||||
|  |     CONSTRAINT UC_Key UNIQUE (`Key`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -0,0 +1,8 @@ | |||||||
|  | DROP TABLE `UserJoinedGameServer`; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | DROP TABLE `UserGameIdents`; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | DROP TABLE `GameServers`; | ||||||
|  |  | ||||||
							
								
								
									
										46
									
								
								bot/src/bot_data/scripts/1.0.0/2_UserJoinedGameServer_up.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								bot/src/bot_data/scripts/1.0.0/2_UserJoinedGameServer_up.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `GameServers` | ||||||
|  | ( | ||||||
|  |     `Id`             BIGINT       NOT NULL AUTO_INCREMENT, | ||||||
|  |     `Name`           VARCHAR(255) NOT NULL, | ||||||
|  |     `ServerId`       BIGINT       NOT NULL, | ||||||
|  |     `ApiKeyId`       BIGINT       NOT NULL, | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     FOREIGN KEY (`ServerId`) REFERENCES Servers (`ServerId`), | ||||||
|  |     FOREIGN KEY (`ApiKeyId`) REFERENCES ApiKeys (`Id`), | ||||||
|  |     PRIMARY KEY (`Id`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `UserJoinedGameServer` | ||||||
|  | ( | ||||||
|  |     `Id`             BIGINT      NOT NULL AUTO_INCREMENT, | ||||||
|  |     `UserId`         BIGINT      NOT NULL, | ||||||
|  |     `GameServerId`   BIGINT      NOT NULL, | ||||||
|  |     `JoinedOn`       DATETIME(6) NOT NULL, | ||||||
|  |     `LeavedOn`       DATETIME(6), | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     FOREIGN KEY (`UserId`) REFERENCES Users (`UserId`), | ||||||
|  |     FOREIGN KEY (`GameServerId`) REFERENCES GameServers (`Id`), | ||||||
|  |     PRIMARY KEY (`Id`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `UserGameIdents` | ||||||
|  | ( | ||||||
|  |     `Id`             BIGINT       NOT NULL AUTO_INCREMENT, | ||||||
|  |     `UserId`         BIGINT       NOT NULL, | ||||||
|  |     `GameServerId`   BIGINT       NOT NULL, | ||||||
|  |     `Ident`          VARCHAR(255) NOT NULL, | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     FOREIGN KEY (`UserId`) REFERENCES Users (`UserId`), | ||||||
|  |     FOREIGN KEY (`GameServerId`) REFERENCES GameServers (`Id`), | ||||||
|  |     CONSTRAINT UC_UserGameIdent UNIQUE (`GameServerId`, `Ident`), | ||||||
|  |     PRIMARY KEY (`Id`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								bot/src/bot_data/scripts/1.0.0/3_RemoveStats_down.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								bot/src/bot_data/scripts/1.0.0/3_RemoveStats_down.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `Statistics` | ||||||
|  | ( | ||||||
|  |     `Id`             BIGINT       NOT NULL AUTO_INCREMENT, | ||||||
|  |     `Name`           VARCHAR(255) NOT NULL, | ||||||
|  |     `Description`    VARCHAR(255) NOT NULL, | ||||||
|  |     `Code`           LONGTEXT     NOT NULL, | ||||||
|  |     `ServerId`       BIGINT, | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     PRIMARY KEY (`Id`), | ||||||
|  |     FOREIGN KEY (`ServerId`) REFERENCES `Servers` (`ServerId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								bot/src/bot_data/scripts/1.0.0/3_RemoveStats_up.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								bot/src/bot_data/scripts/1.0.0/3_RemoveStats_up.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | DROP TABLE IF EXISTS `Statistics`; | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								bot/src/bot_data/scripts/1.0.0/4_UserWarning_down.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								bot/src/bot_data/scripts/1.0.0/4_UserWarning_down.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | DROP TABLE `UserWarnings`; | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								bot/src/bot_data/scripts/1.0.0/4_UserWarning_up.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								bot/src/bot_data/scripts/1.0.0/4_UserWarning_up.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `UserWarnings` | ||||||
|  | ( | ||||||
|  |     `Id`             BIGINT       NOT NULL AUTO_INCREMENT, | ||||||
|  |     `Description`    VARCHAR(255) NOT NULL, | ||||||
|  |     `UserId`         BIGINT       NOT NULL, | ||||||
|  |     `Author`         BIGINT       NULL, | ||||||
|  |     `CreatedAt`      DATETIME(6), | ||||||
|  |     `LastModifiedAt` DATETIME(6), | ||||||
|  |     PRIMARY KEY (`Id`), | ||||||
|  |     FOREIGN KEY (`UserId`) REFERENCES `Users` (`UserId`), | ||||||
|  |     FOREIGN KEY (`Author`) REFERENCES `Users` (`UserId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										34
									
								
								bot/src/bot_data/scripts/1.0.0/5_DBHistory_down.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								bot/src/bot_data/scripts/1.0.0/5_DBHistory_down.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | DROP TABLE `ApiKeysHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `AuthUsersHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `AuthUserUsersRelationsHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `AutoRoleRulesHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `AutoRolesHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `ClientsHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `GameServersHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `KnownUsersHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `LevelsHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `ServersHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `UserGameIdentsHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `UserJoinedGameServerHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `UserJoinedServersHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `UserJoinedVoiceChannelHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `UserMessageCountPerHourHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `UsersHistory`; | ||||||
|  |  | ||||||
|  | DROP TABLE `UserWarningsHistory`; | ||||||
|  |  | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user