Attempt to fix SQLite database migration on first run
This commit is contained in:
		
							parent
							
								
									c8172ca062
								
							
						
					
					
						commit
						4ef2ce7526
					
				
					 1 changed files with 21 additions and 19 deletions
				
			
		| 
						 | 
					@ -10,25 +10,7 @@ const sqliteUpdates = [
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export async function setup(ipc) {
 | 
					export async function setup(ipc) {
 | 
				
			||||||
  let version = connection.pragma("user_version", { simple: true });
 | 
					  connection.prepare("CREATE TABLE IF NOT EXISTS guilds ( guild_id VARCHAR(30) NOT NULL PRIMARY KEY, prefix VARCHAR(15) NOT NULL, disabled text NOT NULL, disabled_commands text NOT NULL )").run();
 | 
				
			||||||
  if (version < (sqliteUpdates.length - 1)) {
 | 
					 | 
				
			||||||
    logger.warn(`Migrating SQLite database at ${process.env.DB}, which is currently at version ${version}...`);
 | 
					 | 
				
			||||||
    connection.prepare("BEGIN TRANSACTION").run();
 | 
					 | 
				
			||||||
    try {
 | 
					 | 
				
			||||||
      while (version < (sqliteUpdates.length - 1)) {
 | 
					 | 
				
			||||||
        version++;
 | 
					 | 
				
			||||||
        logger.warn(`Running version ${version} update script (${sqliteUpdates[version]})...`);
 | 
					 | 
				
			||||||
        connection.prepare(sqliteUpdates[version]).run();
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      connection.pragma(`user_version = ${version}`); // insecure, but the normal templating method doesn't seem to work here
 | 
					 | 
				
			||||||
      connection.prepare("COMMIT").run();
 | 
					 | 
				
			||||||
    } catch (e) {
 | 
					 | 
				
			||||||
      logger.error(`SQLite migration failed: ${e}`);
 | 
					 | 
				
			||||||
      connection.prepare("ROLLBACK").run();
 | 
					 | 
				
			||||||
      logger.error("Unable to start the bot, quitting now.");
 | 
					 | 
				
			||||||
      ipc.totalShutdown();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  let counts;
 | 
					  let counts;
 | 
				
			||||||
  try {
 | 
					  try {
 | 
				
			||||||
| 
						 | 
					@ -64,6 +46,26 @@ export async function setup(ipc) {
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  let version = connection.pragma("user_version", { simple: true });
 | 
				
			||||||
 | 
					  if (version < (sqliteUpdates.length - 1)) {
 | 
				
			||||||
 | 
					    logger.warn(`Migrating SQLite database at ${process.env.DB}, which is currently at version ${version}...`);
 | 
				
			||||||
 | 
					    connection.prepare("BEGIN TRANSACTION").run();
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					      while (version < (sqliteUpdates.length - 1)) {
 | 
				
			||||||
 | 
					        version++;
 | 
				
			||||||
 | 
					        logger.warn(`Running version ${version} update script (${sqliteUpdates[version]})...`);
 | 
				
			||||||
 | 
					        connection.prepare(sqliteUpdates[version]).run();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      connection.pragma(`user_version = ${version}`); // insecure, but the normal templating method doesn't seem to work here
 | 
				
			||||||
 | 
					      connection.prepare("COMMIT").run();
 | 
				
			||||||
 | 
					    } catch (e) {
 | 
				
			||||||
 | 
					      logger.error(`SQLite migration failed: ${e}`);
 | 
				
			||||||
 | 
					      connection.prepare("ROLLBACK").run();
 | 
				
			||||||
 | 
					      logger.error("Unable to start the bot, quitting now.");
 | 
				
			||||||
 | 
					      throw ipc.totalShutdown();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export async function stop() {
 | 
					export async function stop() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue