mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-30 18:12:25 -04:00 
			
		
		
		
	Merge pull request #3589 from nichwall/migration_table_check_fix
Check that `migrationsMeta` table is well formed instead of just existing
This commit is contained in:
		
						commit
						a8ec07cfc9
					
				| @ -191,7 +191,21 @@ class MigrationManager { | |||||||
|     const queryInterface = this.sequelize.getQueryInterface() |     const queryInterface = this.sequelize.getQueryInterface() | ||||||
|     let migrationsMetaTableExists = await queryInterface.tableExists(MigrationManager.MIGRATIONS_META_TABLE) |     let migrationsMetaTableExists = await queryInterface.tableExists(MigrationManager.MIGRATIONS_META_TABLE) | ||||||
| 
 | 
 | ||||||
|  |     // If the table exists, check that the `version` and `maxVersion` rows exist
 | ||||||
|  |     if (migrationsMetaTableExists) { | ||||||
|  |       const [{ count }] = await this.sequelize.query("SELECT COUNT(*) as count FROM :migrationsMeta WHERE key IN ('version', 'maxVersion')", { | ||||||
|  |         replacements: { migrationsMeta: MigrationManager.MIGRATIONS_META_TABLE }, | ||||||
|  |         type: Sequelize.QueryTypes.SELECT | ||||||
|  |       }) | ||||||
|  |       if (count < 2) { | ||||||
|  |         Logger.warn(`[MigrationManager] migrationsMeta table exists but is missing 'version' or 'maxVersion' row. Dropping it...`) | ||||||
|  |         await queryInterface.dropTable(MigrationManager.MIGRATIONS_META_TABLE) | ||||||
|  |         migrationsMetaTableExists = false | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     if (this.isDatabaseNew && migrationsMetaTableExists) { |     if (this.isDatabaseNew && migrationsMetaTableExists) { | ||||||
|  |       Logger.warn(`[MigrationManager] migrationsMeta table already exists. Dropping it...`) | ||||||
|       // This can happen if database was initialized with force: true
 |       // This can happen if database was initialized with force: true
 | ||||||
|       await queryInterface.dropTable(MigrationManager.MIGRATIONS_META_TABLE) |       await queryInterface.dropTable(MigrationManager.MIGRATIONS_META_TABLE) | ||||||
|       migrationsMetaTableExists = false |       migrationsMetaTableExists = false | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user