Fix jwt-token
This commit is contained in:
@@ -156,32 +156,33 @@ async function startServer() {
|
||||
await sequelize.authenticate();
|
||||
console.log('Database connected successfully.');
|
||||
|
||||
// Run migrations first
|
||||
try {
|
||||
await runMigrations();
|
||||
} catch (migrationError) {
|
||||
console.error('Migration error:', migrationError);
|
||||
console.log('Continuing with database sync...');
|
||||
}
|
||||
|
||||
// Always sync database in containerized environments or development
|
||||
// Check if tables exist before syncing
|
||||
// STEP 1: Sync database first to create base tables
|
||||
try {
|
||||
// Use alter: false to prevent destructive changes in production
|
||||
await sequelize.sync({ force: false, alter: false });
|
||||
console.log('Database synchronized.');
|
||||
|
||||
// Seed database with initial data
|
||||
await seedDatabase();
|
||||
} catch (syncError) {
|
||||
console.error('Database sync error:', syncError);
|
||||
// If sync fails, try force sync (this will drop and recreate tables)
|
||||
console.log('Attempting force sync...');
|
||||
await sequelize.sync({ force: true });
|
||||
console.log('Database force synchronized.');
|
||||
|
||||
// Seed database with initial data
|
||||
}
|
||||
|
||||
// STEP 2: Run migrations after tables exist
|
||||
try {
|
||||
await runMigrations();
|
||||
} catch (migrationError) {
|
||||
console.error('Migration error:', migrationError);
|
||||
throw migrationError; // Fatal error - don't continue
|
||||
}
|
||||
|
||||
// STEP 3: Seed database with initial data
|
||||
try {
|
||||
await seedDatabase();
|
||||
} catch (seedError) {
|
||||
console.error('Seeding error:', seedError);
|
||||
throw seedError; // Fatal error - don't continue
|
||||
}
|
||||
|
||||
server.listen(PORT, () => {
|
||||
|
||||
@@ -7,44 +7,32 @@
|
||||
|
||||
module.exports = {
|
||||
async up(queryInterface, Sequelize) {
|
||||
try {
|
||||
// Check if devices table exists first
|
||||
const tables = await queryInterface.showAllTables();
|
||||
if (!tables.includes('devices')) {
|
||||
console.log('⚠️ Devices table does not exist yet, skipping device approval migration...');
|
||||
return;
|
||||
}
|
||||
// Check if is_approved column already exists
|
||||
const tableDescription = await queryInterface.describeTable('devices');
|
||||
|
||||
if (!tableDescription.is_approved) {
|
||||
// Add is_approved column to devices table
|
||||
await queryInterface.addColumn('devices', 'is_approved', {
|
||||
type: Sequelize.BOOLEAN,
|
||||
defaultValue: false,
|
||||
allowNull: false,
|
||||
comment: 'Whether the device is approved to send data'
|
||||
});
|
||||
|
||||
// Check if is_approved column already exists
|
||||
const tableDescription = await queryInterface.describeTable('devices');
|
||||
|
||||
if (!tableDescription.is_approved) {
|
||||
// Add is_approved column to devices table
|
||||
await queryInterface.addColumn('devices', 'is_approved', {
|
||||
type: Sequelize.BOOLEAN,
|
||||
defaultValue: false,
|
||||
allowNull: false,
|
||||
comment: 'Whether the device is approved to send data'
|
||||
});
|
||||
// Add index for is_approved for better query performance
|
||||
await queryInterface.addIndex('devices', ['is_approved'], {
|
||||
name: 'devices_is_approved_idx'
|
||||
});
|
||||
|
||||
// Add index for is_approved for better query performance
|
||||
await queryInterface.addIndex('devices', ['is_approved'], {
|
||||
name: 'devices_is_approved_idx'
|
||||
});
|
||||
// Approve all existing devices by default (backward compatibility)
|
||||
await queryInterface.sequelize.query(
|
||||
'UPDATE devices SET is_approved = true WHERE created_at < NOW()'
|
||||
);
|
||||
|
||||
// Approve all existing devices by default (backward compatibility)
|
||||
await queryInterface.sequelize.query(
|
||||
'UPDATE devices SET is_approved = true WHERE created_at < NOW()'
|
||||
);
|
||||
|
||||
console.log('✅ Added is_approved field to devices table');
|
||||
console.log('✅ Approved all existing devices for backward compatibility');
|
||||
} else {
|
||||
console.log('⚠️ Column is_approved already exists, skipping...');
|
||||
}
|
||||
} catch (error) {
|
||||
console.log('⚠️ Migration skipped - tables may not exist yet:', error.message);
|
||||
// Don't throw error, just skip this migration if tables don't exist
|
||||
console.log('✅ Added is_approved field to devices table');
|
||||
console.log('✅ Approved all existing devices for backward compatibility');
|
||||
} else {
|
||||
console.log('⚠️ Column is_approved already exists, skipping...');
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user