CREATE TABLE IF NOT EXISTS transactions()

in middleware/cron/syncTransactionHistory.js [57:98]


                    CREATE TABLE IF NOT EXISTS transactions (
                        id INTEGER PRIMARY KEY AUTOINCREMENT,
                        block_id INTEGER NOT NULL,
                        volume INTEGER NOT NULL,
                        created_at TEXT NOT NULL
                    )
                `, (err) => {
                    if (err) {
                        logger.error('Error creating transactions table:', err);
                        reject(err);
                        return;
                    }
                    
                    // Create index on block_id
                    db.run('CREATE INDEX IF NOT EXISTS idx_transactions_block_id ON transactions(block_id)', (err) => {
                        if (err) {
                            logger.error('Error creating block_id index:', err);
                            reject(err);
                            return;
                        }
                        
                        // Create index on created_at for time-based queries
                        db.run('CREATE INDEX IF NOT EXISTS idx_transactions_created_at ON transactions(created_at)', (err) => {
                            if (err) {
                                logger.error('Error creating created_at index:', err);
                                reject(err);
                                return;
                            }
                            
                            // Verify database is accessible with a simple query
                            db.get('SELECT count(*) as count FROM transactions', (err, row) => {
                                if (err) {
                                    logger.error('Error verifying database access:', err);
                                    reject(err);
                                } else {
                                    logger.info(`Database initialized successfully. Current record count: ${row?.count || 0}`);
                                    resolve();
                                }
                            });
                        });
                    });
                });