fix(backend): Update MikroORM, Fix voor 'pks not iterable' problem in Groups
This commit is contained in:
		
							parent
							
								
									451ac7546f
								
							
						
					
					
						commit
						9c638b11f6
					
				
					 5 changed files with 57 additions and 53 deletions
				
			
		|  | @ -16,11 +16,11 @@ | ||||||
|         "test:unit": "vitest --run" |         "test:unit": "vitest --run" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@mikro-orm/core": "6.4.9", |         "@mikro-orm/core": "6.4.12", | ||||||
|         "@mikro-orm/knex": "6.4.9", |         "@mikro-orm/knex": "6.4.12", | ||||||
|         "@mikro-orm/postgresql": "6.4.9", |         "@mikro-orm/postgresql": "6.4.12", | ||||||
|         "@mikro-orm/reflection": "6.4.9", |         "@mikro-orm/reflection": "6.4.12", | ||||||
|         "@mikro-orm/sqlite": "6.4.9", |         "@mikro-orm/sqlite": "6.4.12", | ||||||
|         "axios": "^1.8.2", |         "axios": "^1.8.2", | ||||||
|         "cors": "^2.8.5", |         "cors": "^2.8.5", | ||||||
|         "cross": "^1.0.0", |         "cross": "^1.0.0", | ||||||
|  | @ -43,7 +43,7 @@ | ||||||
|         "winston-loki": "^6.1.3" |         "winston-loki": "^6.1.3" | ||||||
|     }, |     }, | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@mikro-orm/cli": "6.4.9", |         "@mikro-orm/cli": "6.4.12", | ||||||
|         "@types/cors": "^2.8.17", |         "@types/cors": "^2.8.17", | ||||||
|         "@types/express": "^5.0.0", |         "@types/express": "^5.0.0", | ||||||
|         "@types/js-yaml": "^4.0.9", |         "@types/js-yaml": "^4.0.9", | ||||||
|  |  | ||||||
|  | @ -35,5 +35,5 @@ export class Assignment { | ||||||
|         entity: () => Group, |         entity: () => Group, | ||||||
|         mappedBy: 'assignment', |         mappedBy: 'assignment', | ||||||
|     }) |     }) | ||||||
|     groups!: Collection<Group>; |     groups: Collection<Group> = new Collection<Group>(this); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -7,15 +7,19 @@ import { GroupRepository } from '../../data/assignments/group-repository.js'; | ||||||
|     repository: () => GroupRepository, |     repository: () => GroupRepository, | ||||||
| }) | }) | ||||||
| export class Group { | export class Group { | ||||||
|     @ManyToOne({ |     /* | ||||||
|         entity: () => Assignment, |      WARNING: Don't move the definition of groupNumber! If it does not come before the definition of assignment, | ||||||
|         primary: true, |      creating groups fails because of a MikroORM bug! | ||||||
|     }) |      */ | ||||||
|     assignment!: Assignment; |  | ||||||
| 
 |  | ||||||
|     @PrimaryKey({ type: 'integer', autoincrement: true }) |     @PrimaryKey({ type: 'integer', autoincrement: true }) | ||||||
|     groupNumber?: number; |     groupNumber?: number; | ||||||
| 
 | 
 | ||||||
|  |     @ManyToOne({ | ||||||
|  |         entity: () => Assignment, | ||||||
|  |         primary: true | ||||||
|  |     }) | ||||||
|  |     assignment!: Assignment; | ||||||
|  | 
 | ||||||
|     @ManyToMany({ |     @ManyToMany({ | ||||||
|         entity: () => Student, |         entity: () => Student, | ||||||
|         owner: true, |         owner: true, | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| import { Group } from '../entities/assignments/group.entity.js'; | import { Group } from '../entities/assignments/group.entity.js'; | ||||||
| import { Class } from '../entities/classes/class.entity.js'; | import { Class } from '../entities/classes/class.entity.js'; | ||||||
| import { mapToAssignmentDTO } from './assignment.js'; | import {mapToAssignmentDTOId} from './assignment.js'; | ||||||
| import { mapToClassDTO } from './class.js'; | import { mapToClassDTO } from './class.js'; | ||||||
| import { mapToStudentDTO } from './student.js'; | import { mapToStudentDTO } from './student.js'; | ||||||
| import { GroupDTO } from '@dwengo-1/common/interfaces/group'; | import { GroupDTO } from '@dwengo-1/common/interfaces/group'; | ||||||
|  | @ -8,7 +8,7 @@ import { GroupDTO } from '@dwengo-1/common/interfaces/group'; | ||||||
| export function mapToGroupDTO(group: Group, cls: Class): GroupDTO { | export function mapToGroupDTO(group: Group, cls: Class): GroupDTO { | ||||||
|     return { |     return { | ||||||
|         class: mapToClassDTO(cls), |         class: mapToClassDTO(cls), | ||||||
|         assignment: mapToAssignmentDTO(group.assignment), |         assignment: mapToAssignmentDTOId(group.assignment), | ||||||
|         groupNumber: group.groupNumber!, |         groupNumber: group.groupNumber!, | ||||||
|         members: group.members.map(mapToStudentDTO), |         members: group.members.map(mapToStudentDTO), | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
							
								
								
									
										76
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										76
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							|  | @ -31,11 +31,11 @@ | ||||||
|             "name": "@dwengo-1/backend", |             "name": "@dwengo-1/backend", | ||||||
|             "version": "0.1.1", |             "version": "0.1.1", | ||||||
|             "dependencies": { |             "dependencies": { | ||||||
|                 "@mikro-orm/core": "6.4.9", |                 "@mikro-orm/core": "6.4.12", | ||||||
|                 "@mikro-orm/knex": "6.4.9", |                 "@mikro-orm/knex": "6.4.12", | ||||||
|                 "@mikro-orm/postgresql": "6.4.9", |                 "@mikro-orm/postgresql": "6.4.12", | ||||||
|                 "@mikro-orm/reflection": "6.4.9", |                 "@mikro-orm/reflection": "6.4.12", | ||||||
|                 "@mikro-orm/sqlite": "6.4.9", |                 "@mikro-orm/sqlite": "6.4.12", | ||||||
|                 "axios": "^1.8.2", |                 "axios": "^1.8.2", | ||||||
|                 "cors": "^2.8.5", |                 "cors": "^2.8.5", | ||||||
|                 "cross": "^1.0.0", |                 "cross": "^1.0.0", | ||||||
|  | @ -58,7 +58,7 @@ | ||||||
|                 "winston-loki": "^6.1.3" |                 "winston-loki": "^6.1.3" | ||||||
|             }, |             }, | ||||||
|             "devDependencies": { |             "devDependencies": { | ||||||
|                 "@mikro-orm/cli": "6.4.9", |                 "@mikro-orm/cli": "6.4.12", | ||||||
|                 "@types/cors": "^2.8.17", |                 "@types/cors": "^2.8.17", | ||||||
|                 "@types/express": "^5.0.0", |                 "@types/express": "^5.0.0", | ||||||
|                 "@types/js-yaml": "^4.0.9", |                 "@types/js-yaml": "^4.0.9", | ||||||
|  | @ -1817,15 +1817,15 @@ | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "node_modules/@mikro-orm/cli": { |         "node_modules/@mikro-orm/cli": { | ||||||
|             "version": "6.4.9", |             "version": "6.4.12", | ||||||
|             "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-6.4.9.tgz", |             "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-6.4.12.tgz", | ||||||
|             "integrity": "sha512-LQzVsmar/0DoJkPGyz3OpB8pa9BCQtvYreEC71h0O+RcizppJjgBQNTkj5tJd2Iqvh4hSaMv6qTv0l5UK6F2Vw==", |             "integrity": "sha512-7rKtrR4GAmeHOCSIPqtL1rtKdAQFvuCghiNxbL2+ck7d5SHRLG/pSCmnW70p5160a9mJ8uCl8vfWIQNOsX94Sw==", | ||||||
|             "dev": true, |             "dev": true, | ||||||
|             "license": "MIT", |             "license": "MIT", | ||||||
|             "dependencies": { |             "dependencies": { | ||||||
|                 "@jercle/yargonaut": "1.1.5", |                 "@jercle/yargonaut": "1.1.5", | ||||||
|                 "@mikro-orm/core": "6.4.9", |                 "@mikro-orm/core": "6.4.12", | ||||||
|                 "@mikro-orm/knex": "6.4.9", |                 "@mikro-orm/knex": "6.4.12", | ||||||
|                 "fs-extra": "11.3.0", |                 "fs-extra": "11.3.0", | ||||||
|                 "tsconfig-paths": "4.2.0", |                 "tsconfig-paths": "4.2.0", | ||||||
|                 "yargs": "17.7.2" |                 "yargs": "17.7.2" | ||||||
|  | @ -1839,9 +1839,9 @@ | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "node_modules/@mikro-orm/core": { |         "node_modules/@mikro-orm/core": { | ||||||
|             "version": "6.4.9", |             "version": "6.4.12", | ||||||
|             "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-6.4.9.tgz", |             "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-6.4.12.tgz", | ||||||
|             "integrity": "sha512-osB2TbvSH4ZL1s62LCBQFAnxPqLycX5fakPHOoztudixqfbVD5QQydeGizJXMMh2zKP6vRCwIJy3MeSuFxPjHg==", |             "integrity": "sha512-TzJJCFZCdyrVPt/K3UHdao8Iyj4xJSj2r0tYUCY4zNKwuUw6K3RlEYcWGUf85FWIAZJPpYqbv83WTb/H9OiyyQ==", | ||||||
|             "license": "MIT", |             "license": "MIT", | ||||||
|             "dependencies": { |             "dependencies": { | ||||||
|                 "dataloader": "2.2.3", |                 "dataloader": "2.2.3", | ||||||
|  | @ -1849,7 +1849,7 @@ | ||||||
|                 "esprima": "4.0.1", |                 "esprima": "4.0.1", | ||||||
|                 "fs-extra": "11.3.0", |                 "fs-extra": "11.3.0", | ||||||
|                 "globby": "11.1.0", |                 "globby": "11.1.0", | ||||||
|                 "mikro-orm": "6.4.9", |                 "mikro-orm": "6.4.12", | ||||||
|                 "reflect-metadata": "0.2.2" |                 "reflect-metadata": "0.2.2" | ||||||
|             }, |             }, | ||||||
|             "engines": { |             "engines": { | ||||||
|  | @ -1860,9 +1860,9 @@ | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "node_modules/@mikro-orm/knex": { |         "node_modules/@mikro-orm/knex": { | ||||||
|             "version": "6.4.9", |             "version": "6.4.12", | ||||||
|             "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-6.4.9.tgz", |             "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-6.4.12.tgz", | ||||||
|             "integrity": "sha512-iGXJfe/TziVOQsWuxMIqkOpurysWzQA6kj3+FDtOkHJAijZhqhjSBnfUVHHY/JzU9o0M0rgLrDVJFry/uEaJEA==", |             "integrity": "sha512-KMocJ4fdAbf52I/K25eV+dZDWXdVJpiIaBuIRt04m+SiJ7HZPP0OTDt/mexX3WHWW2m/d1byDNIZecjmV0eRSA==", | ||||||
|             "license": "MIT", |             "license": "MIT", | ||||||
|             "dependencies": { |             "dependencies": { | ||||||
|                 "fs-extra": "11.3.0", |                 "fs-extra": "11.3.0", | ||||||
|  | @ -1891,13 +1891,13 @@ | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "node_modules/@mikro-orm/postgresql": { |         "node_modules/@mikro-orm/postgresql": { | ||||||
|             "version": "6.4.9", |             "version": "6.4.12", | ||||||
|             "resolved": "https://registry.npmjs.org/@mikro-orm/postgresql/-/postgresql-6.4.9.tgz", |             "resolved": "https://registry.npmjs.org/@mikro-orm/postgresql/-/postgresql-6.4.12.tgz", | ||||||
|             "integrity": "sha512-ZdVVFAL/TSbzpEmChGdH0oUpy2KiHLjNIeItZHRQgInn1X9p0qx28VVDR78p8qgRGkQ3LquxGTkvmWI0w7qi3A==", |             "integrity": "sha512-qWO2oerG2A9Jf6dCP/3tvnwxB/Y7gZGXOByG/iMlnQHeHEZ95G5GDe1TSZ/5Ho52wGoq3Vn3xzeKZwJdajbcEw==", | ||||||
|             "license": "MIT", |             "license": "MIT", | ||||||
|             "dependencies": { |             "dependencies": { | ||||||
|                 "@mikro-orm/knex": "6.4.9", |                 "@mikro-orm/knex": "6.4.12", | ||||||
|                 "pg": "8.13.3", |                 "pg": "8.14.1", | ||||||
|                 "postgres-array": "3.0.4", |                 "postgres-array": "3.0.4", | ||||||
|                 "postgres-date": "2.1.0", |                 "postgres-date": "2.1.0", | ||||||
|                 "postgres-interval": "4.0.2" |                 "postgres-interval": "4.0.2" | ||||||
|  | @ -1910,9 +1910,9 @@ | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "node_modules/@mikro-orm/reflection": { |         "node_modules/@mikro-orm/reflection": { | ||||||
|             "version": "6.4.9", |             "version": "6.4.12", | ||||||
|             "resolved": "https://registry.npmjs.org/@mikro-orm/reflection/-/reflection-6.4.9.tgz", |             "resolved": "https://registry.npmjs.org/@mikro-orm/reflection/-/reflection-6.4.12.tgz", | ||||||
|             "integrity": "sha512-fgY7yLrcZm3J/8dv9reUC4PQo7C2muImU31jmzz1SxmNKPJFDJl7OzcDZlM5NOisXzsWUBrcNdCyuQiWViVc3A==", |             "integrity": "sha512-RZAMFAwe+yBylbiaHTyBDXDZWkqcLVv6IxRAc/YGBhD+Z1NjZbrFRrNg7OQryEW13OUIuIrXTCgKb9C0Mem0cQ==", | ||||||
|             "license": "MIT", |             "license": "MIT", | ||||||
|             "dependencies": { |             "dependencies": { | ||||||
|                 "globby": "11.1.0", |                 "globby": "11.1.0", | ||||||
|  | @ -1926,12 +1926,12 @@ | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "node_modules/@mikro-orm/sqlite": { |         "node_modules/@mikro-orm/sqlite": { | ||||||
|             "version": "6.4.9", |             "version": "6.4.12", | ||||||
|             "resolved": "https://registry.npmjs.org/@mikro-orm/sqlite/-/sqlite-6.4.9.tgz", |             "resolved": "https://registry.npmjs.org/@mikro-orm/sqlite/-/sqlite-6.4.12.tgz", | ||||||
|             "integrity": "sha512-O7Jy/5DrTWpJI/3qkhRJHl+OcECx1N625LHDODAAauOK3+MJB/bj80TrvQhe6d/CHZMmvxZ7m2GzaL1NulKxRw==", |             "integrity": "sha512-fIR/AkgUxOEKCiGxes8BrkNm86iP7eB0ZhvDjrRbinYxarGHtPIUEub0tY0jvQNbXo4s/GwRIPhA178pr5xEFA==", | ||||||
|             "license": "MIT", |             "license": "MIT", | ||||||
|             "dependencies": { |             "dependencies": { | ||||||
|                 "@mikro-orm/knex": "6.4.9", |                 "@mikro-orm/knex": "6.4.12", | ||||||
|                 "fs-extra": "11.3.0", |                 "fs-extra": "11.3.0", | ||||||
|                 "sqlite3": "5.1.7", |                 "sqlite3": "5.1.7", | ||||||
|                 "sqlstring-sqlite": "0.1.1" |                 "sqlstring-sqlite": "0.1.1" | ||||||
|  | @ -7850,9 +7850,9 @@ | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "node_modules/mikro-orm": { |         "node_modules/mikro-orm": { | ||||||
|             "version": "6.4.9", |             "version": "6.4.12", | ||||||
|             "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-6.4.9.tgz", |             "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-6.4.12.tgz", | ||||||
|             "integrity": "sha512-XwVrWNT4NNwS6kHIKFNDfvy8L1eWcBBEHeTVzFFYcnb2ummATaLxqeVkNEmKA68jmdtfQdUmWBqGdbcIPwtL2Q==", |             "integrity": "sha512-uOJdx0q9Hg0SKYtHeJ73Iu2PhlU8LoyhaMm2PH9n1kvqpyoqUme2vKpwWywELFpZKgXwtkeIA8Ce56caYb593Q==", | ||||||
|             "license": "MIT", |             "license": "MIT", | ||||||
|             "engines": { |             "engines": { | ||||||
|                 "node": ">= 18.12.0" |                 "node": ">= 18.12.0" | ||||||
|  | @ -8649,14 +8649,14 @@ | ||||||
|             "license": "MIT" |             "license": "MIT" | ||||||
|         }, |         }, | ||||||
|         "node_modules/pg": { |         "node_modules/pg": { | ||||||
|             "version": "8.13.3", |             "version": "8.14.1", | ||||||
|             "resolved": "https://registry.npmjs.org/pg/-/pg-8.13.3.tgz", |             "resolved": "https://registry.npmjs.org/pg/-/pg-8.14.1.tgz", | ||||||
|             "integrity": "sha512-P6tPt9jXbL9HVu/SSRERNYaYG++MjnscnegFh9pPHihfoBSujsrka0hyuymMzeJKFWrcG8wvCKy8rCe8e5nDUQ==", |             "integrity": "sha512-0TdbqfjwIun9Fm/r89oB7RFQ0bLgduAhiIqIXOsyKoiC/L54DbuAAzIEN/9Op0f1Po9X7iCPXGoa/Ah+2aI8Xw==", | ||||||
|             "license": "MIT", |             "license": "MIT", | ||||||
|             "dependencies": { |             "dependencies": { | ||||||
|                 "pg-connection-string": "^2.7.0", |                 "pg-connection-string": "^2.7.0", | ||||||
|                 "pg-pool": "^3.7.1", |                 "pg-pool": "^3.8.0", | ||||||
|                 "pg-protocol": "^1.7.1", |                 "pg-protocol": "^1.8.0", | ||||||
|                 "pg-types": "^2.1.0", |                 "pg-types": "^2.1.0", | ||||||
|                 "pgpass": "1.x" |                 "pgpass": "1.x" | ||||||
|             }, |             }, | ||||||
|  |  | ||||||
		Reference in a new issue
	
	 Gerald Schmittinger
						Gerald Schmittinger