debug: process.env.DEBUG === 'true',
connection: {
filename: join('./data.db')
- },
- migrations: {
- directory: join(__dirname, '../migrations'),
- extension: 'ts'
- },
- useNullAsDefault: true
+ }
});
const parser = new Parser();
const app = express();
setTimeout(queryFeeds, 1000 * 60);
}
-// Migration runner function
-async function runMigrations() {
- try {
- console.log('Running database migrations...');
- const [batchNo, log] = await db.migrate.latest();
-
- if (log.length === 0) {
- console.log('Database is already up to date');
- } else {
- console.log(`Batch ${batchNo} run: ${log.length} migrations`);
- log.forEach((migration) => console.log(`- ${migration}`));
- }
- } catch (error) {
- console.error('Migration failed:', error);
- process.exit(1);
- }
-}
-
app.use(express.static(join(__dirname, 'public')));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.json());
// Start the application
async function startApp() {
- // Run migrations first
- await runMigrations();
-
- // Then start the server
app.listen(process.env.API_PORT, () => {
console.log(`Listening on port ${process.env.API_PORT}`);
console.log(`Feed refresh rate: ${FEED_REFRESH_RATE}m`);