Files
LogiFlow/SOLUTION_IMMEDIATE.md
T
michaelschal 0dc7ef49c0 Add a dedicated script for creating missing announcement tables
Introduce a new script `fix-announcements-only.sh` to specifically create the `announcements` table if it does not exist, streamlining the migration process for this critical component.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: e437ffed-c31b-44eb-9fd5-b6f9faa8e7ce
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/e437ffed-c31b-44eb-9fd5-b6f9faa8e7ce/biGr9ER
2025-08-16 11:28:32 +00:00

3.0 KiB

🚨 SOLUTION IMMÉDIATE POUR LA PRODUCTION

Problème

La table announcements n'existe pas dans votre base de données de production, ce qui cause l'erreur:

Error: relation "announcements" does not exist

Solution en 3 étapes simples

1. Connectez-vous à votre serveur de production

# SSH vers votre serveur
ssh votre-serveur-production

2. Accédez au conteneur Docker

# Entrer dans le conteneur
docker exec -it logiflow-logiflow-1 bash

3. Créer la table directement

# Dans le conteneur, exécuter cette commande :
psql $DATABASE_URL -c "
CREATE TABLE IF NOT EXISTS announcements (
  id SERIAL PRIMARY KEY,
  title VARCHAR(255) NOT NULL,
  content TEXT NOT NULL,
  priority VARCHAR(20) NOT NULL DEFAULT 'normal',
  author_id VARCHAR(255) NOT NULL,
  group_id INTEGER,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
  updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
  CONSTRAINT announcements_priority_check CHECK (priority IN ('normal', 'important', 'urgent')),
  CONSTRAINT announcements_author_id_fkey FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE CASCADE,
  CONSTRAINT announcements_group_id_fkey FOREIGN KEY (group_id) REFERENCES groups(id) ON DELETE CASCADE
);

CREATE INDEX IF NOT EXISTS idx_announcements_priority ON announcements(priority);
CREATE INDEX IF NOT EXISTS idx_announcements_created_at ON announcements(created_at DESC);
CREATE INDEX IF NOT EXISTS idx_announcements_author_id ON announcements(author_id);
CREATE INDEX IF NOT EXISTS idx_announcements_group_id ON announcements(group_id);
"

4. Vérifier que ça fonctionne

# Vérifier que la table existe
psql $DATABASE_URL -c "SELECT 'SUCCESS: Table announcements créée!' as status;"

5. Sortir du conteneur

exit

Résultat attendu

Après ces étapes, le système d'annonces fonctionnera immédiatement sur votre production.

Alternative plus simple (une seule commande)

docker exec logiflow-logiflow-1 psql $DATABASE_URL -c "CREATE TABLE IF NOT EXISTS announcements (id SERIAL PRIMARY KEY, title VARCHAR(255) NOT NULL, content TEXT NOT NULL, priority VARCHAR(20) NOT NULL DEFAULT 'normal', author_id VARCHAR(255) NOT NULL, group_id INTEGER, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), CONSTRAINT announcements_priority_check CHECK (priority IN ('normal', 'important', 'urgent')), CONSTRAINT announcements_author_id_fkey FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE CASCADE, CONSTRAINT announcements_group_id_fkey FOREIGN KEY (group_id) REFERENCES groups(id) ON DELETE CASCADE);"

Script minimal (nouvelle option)

# Copier et exécuter le script minimal
docker cp scripts/fix-announcements-only.sh logiflow-logiflow-1:/app/scripts/
docker exec logiflow-logiflow-1 chmod +x /app/scripts/fix-announcements-only.sh
docker exec logiflow-logiflow-1 /app/scripts/fix-announcements-only.sh

La correction du problème Select.Item value est déjà faite dans le code source.