Fix db race condition
- Fixed a bug where the bot would crash if the db connection took too long - Updated packages to latest version - Bumped version to 1.1.1
This commit is contained in:
		
							
								
								
									
										13
									
								
								Changelog.md
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								Changelog.md
									
									
									
									
									
								
							| @@ -2,7 +2,18 @@ | ||||
|  | ||||
| This file is used to list changes made to this software. | ||||
|  | ||||
| _Current development release: 1.1.0_ | ||||
| _Current development release: 1.1.1_ | ||||
|  | ||||
| ## V1.1.1 [2023-09-16] | ||||
|  | ||||
| ### Updates | ||||
| - Updated packages to latest versions | ||||
|  | ||||
| ### Bugfixes | ||||
| - Fixed a bug where the bot would crash on startup if the database connection establishment took too long | ||||
|  | ||||
| ### Other | ||||
| - Renamed db service in docker compose file from database to db | ||||
|  | ||||
| ## V1.1.0 [2022-11-29] | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ services: | ||||
|     tty: true | ||||
|     stdin_open: true | ||||
|     depends_on: | ||||
|       - database | ||||
|       - db | ||||
|     restart: unless-stopped | ||||
|     environment: | ||||
|       - TOKEN=$TOKEN | ||||
| @@ -16,7 +16,7 @@ services: | ||||
|       - DB_USERNAME=$DB_USERNAME | ||||
|       - DB_PASSWORD=$DB_PASSWORD | ||||
|       - DB_DATABASE=$DB_DATABASE | ||||
|   database: | ||||
|   db: | ||||
|     image: postgres:latest | ||||
|     restart: unless-stopped | ||||
|     ports: | ||||
|   | ||||
							
								
								
									
										1069
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1069
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										24
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "eu.astrogd.white-leopard", | ||||
|   "version": "1.1.0", | ||||
|   "version": "1.1.1", | ||||
|   "description": "A Discord bot that checks channel names for blacklisted words and reverts the changes if necessary", | ||||
|   "main": "build/index.js", | ||||
|   "scripts": { | ||||
| @@ -11,12 +11,12 @@ | ||||
|     "deploy-commands:prod": "ts-node ci/deploy.ts", | ||||
|     "deploy:dev": "npm run build && npm run deploy-commands:dev && docker compose build && docker compose up -d", | ||||
|     "deploy:prod": "rimraf build && npm run build && npm run deploy-commands:prod && docker build -t astrogd/white-leopard:latest . && docker push astrogd/white-leopard:latest", | ||||
|     "start": "npm run build && npm run deploy-commands:dev && docker-compose up --no-start && docker compose start database && node --enable-source-maps .", | ||||
|     "migration:create": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:generate -d src/data/dataSource.ts -p src/data/migrations/data", | ||||
|     "migration:run": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:run -d src/data/dataSource.ts", | ||||
|     "migration:revert": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:revert -d src/data/dataSource.ts", | ||||
|     "migration:show": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:show -d src/data/dataSource.ts", | ||||
|     "migration:check": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:generate --check -d src/data/dataSource.ts src/data/migrations/data" | ||||
|     "start": "npm run build && npm run deploy-commands:dev && docker-compose up -d db && node --enable-source-maps .", | ||||
|     "migration:create": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:generate -d src/data/dataSource.migration.ts -p src/data/migrations/data", | ||||
|     "migration:run": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:run -d src/data/dataSource.migration.ts", | ||||
|     "migration:revert": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:revert -d src/data/dataSource.migration.ts", | ||||
|     "migration:show": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:show -d src/data/dataSource.migration.ts", | ||||
|     "migration:check": "node --require ts-node/register ./node_modules/typeorm/cli.js migration:generate --check -d src/data/dataSource.migration.ts src/data/migrations/data" | ||||
|   }, | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
| @@ -30,15 +30,15 @@ | ||||
|   "homepage": "https://github.com/r-Overwatch2/eu.astrogd.white-leopard#readme", | ||||
|   "devDependencies": { | ||||
|     "@types/express": "^4.17.14", | ||||
|     "@types/fs-extra": "^9.0.13", | ||||
|     "@types/node": "^18.11.9", | ||||
|     "rimraf": "^3.0.2", | ||||
|     "@types/fs-extra": "^11.0.2", | ||||
|     "@types/node": "^18.17.17", | ||||
|     "rimraf": "^5.0.1", | ||||
|     "shx": "^0.3.4", | ||||
|     "ts-node": "^10.9.1", | ||||
|     "typescript": "^4.9.3" | ||||
|     "typescript": "^5.2.2" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "discord.js": "^14.6.0", | ||||
|     "discord.js": "^14.13.0", | ||||
|     "dotenv": "^16.0.3", | ||||
|     "express": "^4.18.2", | ||||
|     "fs-extra": "^11.0.0", | ||||
|   | ||||
| @@ -1,13 +1,21 @@ | ||||
| import { runCleanup } from "../service"; | ||||
| import client from "./index"; | ||||
| import { initPromise } from "../data/dataSource"; | ||||
|  | ||||
| const token = process.env["TOKEN"]; | ||||
| if (!token) throw new ReferenceError("TOKEN environment variable is missing"); | ||||
|  | ||||
| client.login(token); | ||||
| async function run() { | ||||
|     console.log("Establishing database connection"); | ||||
|     await initPromise; | ||||
|     console.log("Connection established\nAuthenticating with Discord API"); | ||||
|     client.login(token); | ||||
| } | ||||
|  | ||||
| client.on("ready", () => { | ||||
| client.on("ready", async () => { | ||||
|     console.log(`Connected to Discord API. Bot account is ${client.user?.tag} (${client.user?.id})`); | ||||
|  | ||||
|     runCleanup(); | ||||
| }); | ||||
| }); | ||||
|  | ||||
| run(); | ||||
							
								
								
									
										3
									
								
								src/data/dataSource.migration.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/data/dataSource.migration.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| import dataSource from "./dataSource"; | ||||
|  | ||||
| export default dataSource; | ||||
| @@ -28,6 +28,9 @@ const dataSource = new DataSource({ | ||||
|     migrationsTransactionMode: "each" | ||||
| }); | ||||
|  | ||||
| dataSource.initialize(); | ||||
| const initPromise = dataSource.initialize(); | ||||
|  | ||||
| export default dataSource; | ||||
| export default dataSource; | ||||
| export { | ||||
|     initPromise | ||||
| } | ||||
		Reference in New Issue
	
	Block a user