deploy: documenter le workflow d'installation fraîche
- Ajoute .env.example avec toutes les variables requises (DB_DSN, OIDC_*, SMTP_*, SESSION_NAME, ADMIN_EMAIL…) — DB_DSN était absent et cassait database/migrate.php au premier déploiement. - Clarifie migrate-init.php : réservé aux serveurs existants antérieurs au système de migrations ; pour une installation fraîche, migrate.php suffit (applique tout depuis migration_000). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
# Folio — variables d'environnement requises
|
||||||
|
# Copier ce fichier en .env dans le répertoire racine du site et remplir les valeurs.
|
||||||
|
# Ce fichier est versionné. Le .env ne l'est pas.
|
||||||
|
|
||||||
|
# Application
|
||||||
|
APP_URL=https://example.com
|
||||||
|
APP_ENV=prod
|
||||||
|
APP_DEBUG=0
|
||||||
|
|
||||||
|
# Authentification admin (email de l'administrateur principal)
|
||||||
|
ADMIN_EMAIL=
|
||||||
|
|
||||||
|
# Nom du cookie de session (doit être unique par site)
|
||||||
|
SESSION_NAME=SID_SITE
|
||||||
|
|
||||||
|
# SSO OIDC
|
||||||
|
OIDC_ISSUER=https://idp.example.com/realms/myrealm
|
||||||
|
OIDC_CLIENT_ID=
|
||||||
|
OIDC_CLIENT_SECRET=
|
||||||
|
# OIDC_REDIRECT_URI= (optionnel, défaut : APP_URL + oidc/callback)
|
||||||
|
|
||||||
|
# PostgreSQL — DB_DSN est requis par database/migrate.php
|
||||||
|
DB_DSN=pgsql:host=127.0.0.1;port=5432;dbname=mydb
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=5432
|
||||||
|
DB_NAME=mydb
|
||||||
|
DB_USER=myuser
|
||||||
|
DB_PASS=
|
||||||
|
|
||||||
|
# SMTP (commentaires, formulaire de contact)
|
||||||
|
SMTP_HOST=
|
||||||
|
SMTP_PORT=587
|
||||||
|
SMTP_SECURE=tls
|
||||||
|
SMTP_USER=
|
||||||
|
SMTP_PASS=
|
||||||
|
SMTP_FROM=
|
||||||
|
SMTP_FROM_NAME=
|
||||||
|
|
||||||
|
# Formulaire de contact
|
||||||
|
CONTACT_EMAIL=
|
||||||
|
CONTACT_FROM_EMAIL=
|
||||||
@@ -1,7 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
// À exécuter UNE SEULE FOIS pour enregistrer les migrations déjà appliquées.
|
// À exécuter UNE SEULE FOIS sur un serveur existant dont le schéma a été créé
|
||||||
// php database/migrate-init.php
|
// manuellement AVANT la mise en place du système de migrations automatiques.
|
||||||
|
//
|
||||||
|
// Pour une installation fraîche, ne PAS utiliser ce script :
|
||||||
|
// lancer directement `php database/migrate.php` qui applique tout depuis migration_000.
|
||||||
|
//
|
||||||
|
// Ne pas relancer sur une base déjà initialisée : ON CONFLICT DO NOTHING protège,
|
||||||
|
// mais les insertions inutiles pollueraient les logs.
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
$baseDir = dirname(__DIR__);
|
$baseDir = dirname(__DIR__);
|
||||||
@@ -28,14 +34,25 @@ $pdo->exec('
|
|||||||
)
|
)
|
||||||
');
|
');
|
||||||
|
|
||||||
// Migrations déjà appliquées avant la mise en place de ce système
|
// Toutes les migrations appliquées manuellement avant l'automatisation
|
||||||
$alreadyApplied = [
|
$alreadyApplied = [
|
||||||
|
'migration_000_initial_schema.sql',
|
||||||
'migration_001_roles_ratings.sql',
|
'migration_001_roles_ratings.sql',
|
||||||
'migration_002_profile_url.sql',
|
'migration_002_profile_url.sql',
|
||||||
'migration_003_profile_slug.sql',
|
'migration_003_profile_slug.sql',
|
||||||
'migration_004_profile_bio.sql',
|
'migration_004_profile_bio.sql',
|
||||||
'migration_005_rss_feeds.sql',
|
'migration_005_rss_feeds.sql',
|
||||||
'migration_006_profile_links.sql',
|
'migration_006_profile_links.sql',
|
||||||
|
'migration_007_comment_verify_token.sql',
|
||||||
|
'migration_008_user_profiles.sql',
|
||||||
|
'migration_009_journal_smtp.sql',
|
||||||
|
'migration_010_role_capabilities.sql',
|
||||||
|
'migration_011_user_capabilities.sql',
|
||||||
|
'migration_012_users.sql',
|
||||||
|
'migration_013_profiles.sql',
|
||||||
|
'migration_014_app_config.sql',
|
||||||
|
'migration_015_mail_queue.sql',
|
||||||
|
'migration_016_dictionary.sql',
|
||||||
];
|
];
|
||||||
|
|
||||||
$stmt = $pdo->prepare('INSERT INTO schema_migrations (name) VALUES (?) ON CONFLICT DO NOTHING');
|
$stmt = $pdo->prepare('INSERT INTO schema_migrations (name) VALUES (?) ON CONFLICT DO NOTHING');
|
||||||
|
|||||||
Reference in New Issue
Block a user