Aller au contenu principal

Neon avec Symfony

Il est possible de créer une base de données sur Neon et de l'utiliser avec un projet Symfony.

Qu'est ce que Neon ?

Neon est une plateforme de base de données PostgreSQL serverless conçue pour simplifier et accélérer le développement d'applications.

info

Neon est entièrement compatible avec PostgreSQL et s'intègre facilement aux frameworks et langages existants.

Caractéristiques principales

  • Serverless: Neon gère automatiquement le provisionnement, la mise à l'échelle et la maintenance des bases de données, permettant aux développeurs de se concentrer sur leur code.

  • Mise à l'échelle automatique: Les ressources s'adaptent automatiquement à la charge, avec la possibilité de réduire à zéro en cas d'inactivité pour optimiser les coûts.

  • Branching instantané: Permet de créer rapidement des copies isolées de la base de données pour le développement, les tests ou les migrations de schéma.

  • Provisionnement rapide: Les nouvelles bases de données sont prêtes en quelques millisecondes.

  • Compatibilité: Entièrement compatible avec PostgreSQL, s'intègre facilement aux frameworks et langages existants.

Avantages pour les développeurs

  • Productivité accrue: Élimine la gestion complexe des bases de données.
  • Flexibilité: S'adapte facilement aux besoins changeants des applications.
  • Économies: La facturation à l'usage et la mise à l'échelle automatique optimisent les coûts.

Neon vise à moderniser l'utilisation de PostgreSQL en offrant une expérience simplifiée et optimisée pour les workflows de développement modernes, tout en conservant la puissance et la fiabilité de PostgreSQL.


Création d'un projet Neon

Pour commencer, vous devrez créer un compte sur la plateforme Neon et configurer votre projet :

  1. Inscrivez-vous sur https://console.neon.tech
  2. Créez un nouveau projet
  3. Obtenez les informations de connexion à votre base de données

Intégration avec Symfony

Une fois votre base de données Neon créée, il est nécessaire de mettre à jour la configuration Doctrine dans config/packages/doctrine.yaml.

Voici les étapes à suivre :

  1. Ouvrez le fichier config/packages/doctrine.yaml

  2. Localisez la section doctrine:dbal: dans ce fichier

  3. Mettez à jour les paramètres de connexion comme suit :

    doctrine:
    dbal:
    url: '%env(resolve:DATABASE_URL)%'
    driver: 'pdo_pgsql'
    server_version: '15'
    charset: utf8
  4. Si ce n'est pas déjà fait, copier votre fichier .env en .env.local.

  5. Assurez-vous que votre fichier .env.local contient la variable DATABASE_URL avec les informations de connexion Neon :

    DATABASE_URL="postgresql://username:password@ep-example-123456.eu-central-1.aws.neon.tech/neondb?sslmode=require"

    Remplacez username, password, ep-example-123456.eu-central-1.aws.neon.tech, et neondb par les valeurs spécifiques à votre projet Neon.

astuce

Si une erreur de type The endpoint ID is not specified s'affiche, vous pouvez modifier l'URL de la façon suivante :

DATABASE_URL="postgresql://NomDeBD_owner:endpoint=identifiant-de-projet;UnMotDePasseTresSecure@nom-du-serveur.nom-de-region.aws.neon.tech/NomDeBD"

Voici un exemple : DATABASE_URL="postgresql://Portfolio_owner:endpoint=falling-voice-12345678;6Ufe6GC-gtcCx+^9~576G@ep-red-queen-a3li224p.eu-central-1.aws.neon.tech/Portfolio"

Cette erreur se produit si votre installation ne prend pas en charge le mécanisme d'indication du nom du serveur (SNI) dans TLS.

  1. Si vous utilisez des entités, assurez-vous que la section orm est correctement configurée :

    orm:
    auto_generate_proxy_classes: true
    naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
    auto_mapping: true
    mappings:
    App:
    is_bundle: false
    type: annotation
    dir: '%kernel.project_dir%/src/Entity'
    prefix: 'App\Entity'
    alias: App

    Cette configuration permettra à votre projet Symfony d'utiliser la base de données PostgreSQL hébergée sur Neon.

attention

Veuillez recréer vos migrations après avoir effectué ces changements.


Utilisation

Une fois la configuration terminée, vous pouvez utiliser votre base de données Neon avec Symfony comme vous le feriez avec n'importe quelle autre base de données PostgreSQL.

astuce

Vous pouvez créer des entités, effectuer des migrations, et interagir avec votre base de données via Doctrine.


Bonnes pratiques

  • Sécurité : Assurez-vous que toutes les connexions à la base de données sont sécurisées par TLS/SSL.
  • Variables d'environnement : Utilisez des variables d'environnement pour gérer les configurations sensibles comme les clés API et les URL de base de données.
  • Encapsulation : Utilisez des services et des repositories pour encapsuler la logique d'accès aux données et aux API.