Add migration to update users table schema
Changes: - Add display_name, email, and groups columns to existing users table - Handle MariaDB lack of IF NOT EXISTS in ALTER TABLE - Gracefully skip columns that already exist - Fixes 500 error when authenticating users Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
23
server.js
23
server.js
@@ -46,6 +46,29 @@ async function initDatabase() {
|
|||||||
)
|
)
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
// Migrate existing users table to add missing columns
|
||||||
|
try {
|
||||||
|
await connection.query(`
|
||||||
|
ALTER TABLE users
|
||||||
|
ADD COLUMN IF NOT EXISTS display_name VARCHAR(255) AFTER username,
|
||||||
|
ADD COLUMN IF NOT EXISTS email VARCHAR(255) AFTER display_name,
|
||||||
|
ADD COLUMN IF NOT EXISTS groups TEXT AFTER email
|
||||||
|
`);
|
||||||
|
console.log('Users table migrated successfully');
|
||||||
|
} catch (error) {
|
||||||
|
// MariaDB doesn't support IF NOT EXISTS in ALTER TABLE, try individual columns
|
||||||
|
try {
|
||||||
|
await connection.query(`ALTER TABLE users ADD COLUMN display_name VARCHAR(255) AFTER username`);
|
||||||
|
} catch (e) { /* Column exists */ }
|
||||||
|
try {
|
||||||
|
await connection.query(`ALTER TABLE users ADD COLUMN email VARCHAR(255) AFTER display_name`);
|
||||||
|
} catch (e) { /* Column exists */ }
|
||||||
|
try {
|
||||||
|
await connection.query(`ALTER TABLE users ADD COLUMN groups TEXT AFTER email`);
|
||||||
|
} catch (e) { /* Column exists */ }
|
||||||
|
console.log('Users table migration completed');
|
||||||
|
}
|
||||||
|
|
||||||
await connection.query(`
|
await connection.query(`
|
||||||
CREATE TABLE IF NOT EXISTS workers (
|
CREATE TABLE IF NOT EXISTS workers (
|
||||||
id VARCHAR(36) PRIMARY KEY,
|
id VARCHAR(36) PRIMARY KEY,
|
||||||
|
|||||||
Reference in New Issue
Block a user