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) {
 | 
			
		||||
  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.");
 | 
			
		||||
      ipc.totalShutdown();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  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();
 | 
			
		||||
 | 
			
		||||
  let counts;
 | 
			
		||||
  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() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue