mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-11 17:29:37 +02:00
fix: add missing parent_id and level columns for subtasks support
ROOT CAUSE: During phases 1-5, subtask support was added which requires parent_id and level columns in note_todos and global_todos tables. However, the auto-migrate script did not include this migration, causing 500 errors when the API tried to SELECT these non-existent columns. Changes: - scripts/auto-migrate.js: Added Migration 4 to create parent_id and level columns if they don't exist - config/database.js: Updated CREATE TABLE statements to include parent_id and level columns in the initial schema This fixes the 500 error on GET /api/notes that occurred because the code was trying to SELECT columns that didn't exist in production. The migration will run automatically on next Docker startup and add the missing columns without data loss. Fixes: "je n ai plus aucune note qui s affichent" - notes not displaying
This commit is contained in:
2 files changed
+53
No files matched your search
@@ -185,6 +185,55 @@ async function autoMigrate() {
|
||||
await client.query(`CREATE INDEX IF NOT EXISTS idx_global_todos_priority ON global_todos(priority DESC, created_at DESC)`);
|
||||
await client.query(`CREATE INDEX IF NOT EXISTS idx_note_todos_priority ON note_todos(priority DESC, position)`);
|
||||
|
||||
// Migration 4: Support des subtasks (parent_id, level)
|
||||
logger.info(' Vérification: support des subtasks (parent_id, level)...');
|
||||
|
||||
const noteTodosParentIdExists = await client.query(`
|
||||
SELECT column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name='note_todos' AND column_name='parent_id'
|
||||
`);
|
||||
|
||||
if (noteTodosParentIdExists.rows.length === 0) {
|
||||
logger.info(' → Ajout du champ parent_id à note_todos');
|
||||
await client.query(`ALTER TABLE note_todos ADD COLUMN parent_id INTEGER REFERENCES note_todos(id) ON DELETE CASCADE`);
|
||||
await client.query(`CREATE INDEX IF NOT EXISTS idx_note_todos_parent_id ON note_todos(parent_id)`);
|
||||
}
|
||||
|
||||
const noteTodosLevelExists = await client.query(`
|
||||
SELECT column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name='note_todos' AND column_name='level'
|
||||
`);
|
||||
|
||||
if (noteTodosLevelExists.rows.length === 0) {
|
||||
logger.info(' → Ajout du champ level à note_todos');
|
||||
await client.query(`ALTER TABLE note_todos ADD COLUMN level INTEGER DEFAULT 0`);
|
||||
}
|
||||
|
||||
const globalTodosParentIdExists = await client.query(`
|
||||
SELECT column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name='global_todos' AND column_name='parent_id'
|
||||
`);
|
||||
|
||||
if (globalTodosParentIdExists.rows.length === 0) {
|
||||
logger.info(' → Ajout du champ parent_id à global_todos');
|
||||
await client.query(`ALTER TABLE global_todos ADD COLUMN parent_id INTEGER REFERENCES global_todos(id) ON DELETE CASCADE`);
|
||||
await client.query(`CREATE INDEX IF NOT EXISTS idx_global_todos_parent_id ON global_todos(parent_id)`);
|
||||
}
|
||||
|
||||
const globalTodosLevelExists = await client.query(`
|
||||
SELECT column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name='global_todos' AND column_name='level'
|
||||
`);
|
||||
|
||||
if (globalTodosLevelExists.rows.length === 0) {
|
||||
logger.info(' → Ajout du champ level à global_todos');
|
||||
await client.query(`ALTER TABLE global_todos ADD COLUMN level INTEGER DEFAULT 0`);
|
||||
}
|
||||
|
||||
await client.query('COMMIT');
|
||||
|
||||
logger.info('✅ Migrations automatiques terminées avec succès');
|
||||
|
||||
Reference in new issue
Block a user