Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/10/2018, à 14:33

Vivi936

Symfony 4 - Doctrine

Bonjour,

Je suis actuellement sur Ubuntu 18 et j'essaye de me former sur le framework symfony 4.
Pour créer une base de données, je dois utiliser Doctrine qui est un Bundle je crois.
Je bloque sur cette étape de Doctrine, je ne comprend pas pourquoi ca bloque.
Voici ce que j'ai dans mon terminal :

vira@vira-TM1701:~/Projet/testSymfony$ php bin/console doctrine:database:create

In AbstractMySQLDriver.php line 126:
                                                          
  An exception occurred in driver: could not find driver  
                                                          

In PDOConnection.php line 50:
                         
  could not find driver  
                         

In PDOConnection.php line 46:
                         
  could not find driver  
                         

doctrine:database:create [--shard SHARD] [--connection [CONNECTION]] [--if-not-exists] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>

Cordialement.

Dernière modification par Vivi936 (Le 16/10/2018, à 14:34)

Hors ligne

#2 Le 16/10/2018, à 14:52

mazarini

Re : Symfony 4 - Doctrine

Bonjour,

Tu dois avoir un fichier .env qui contient entre autre :

###> doctrine/doctrine-bundle ###
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_URL=mysql://root:@127.0.0.1:3306/TableBundle
###< doctrine/doctrine-bundle ###

C'est la ligne "DATABASE_URL=mysql://root:@127.0.0.1:3306/MABASE" qui est sensé permettre de passer des ordres SQL.

Est ce que le module PHP qui va bien est installé (php-mysql ou php7.1-mysql...) ?
Comment as tu créer ton projet ?

Edit : je viens de voir ton lien, je penche pour php-mysql manquant (ou php7.x-mysql)

mais vérifie le fichier : config/packages/doctrine.yaml :

parameters:
    # Adds a fallback DATABASE_URL if the env var is not set.
    # This allows you to run cache:warmup even if your
    # environment variables are not available yet.
    # You should not need to change this value.
    env(DATABASE_URL): ''

doctrine:
    dbal:
        # configure these for your database server
        driver: 'pdo_mysql'
        server_version: '5.7'
        charset: utf8mb4
        default_table_options:
            charset: utf8mb4
            collate: utf8mb4_unicode_ci

        url: '%env(resolve:DATABASE_URL)%'

Dernière modification par mazarini (Le 16/10/2018, à 15:00)


S'il existait une école de la politique, les locaux devraient être édifiés rue de la Santé. Les élèves pourraient s'habituer. (Pierre Dac)

Hors ligne

#3 Le 16/10/2018, à 18:32

Vivi936

Re : Symfony 4 - Doctrine

Salut,

Effectivement c'était bien php-mysql qui manquait !

Merci. J'avais aussi trouvé le truc sur ce site.

Je cite :

hamzaabidi a écrit :

Merci beaucoup Ymox ! tu m'as sauvé la vie tongue, en fait, quand je tape

$> php -r 'phpinfo();' | grep -i pdo

j'ai ça comme sortie:

PDO support      enabled
PDO drivers      

donc c'etait bien le pdo_mysql qui me manquait. et voici ce que j'ai fait pour l'activer :

RQ: je vous conseille de commencer à partir de l'étape 3), si ça ne marche toujours pas, recommencer dés le début.
Les commandes sont à adapter(si la version du php est différente que la mienne)

1) il faut supprimer le php

$> sudo apt-get install ppa-purge
$> sudo apt-get purge php7.0-common

2) réinstaller les modules nécessaires

$> sudo apt-get install php7.1-mysql
$> sudo apt-get install php7.1-pgsql
$> sudo apt-get install php7.1-xml

...

3) activer le module pdo_msql

$> sudo phpenmod pdo_mysql

4) redémarrer le serveur

$> sudo systemctl restart apache2

Merci encore une fois.

De mon côté, je n'ai fait que l'étape 3 et 4. même si j'ai pas trop compris la ligne de commande que j'ai tapé copié/collé

Hors ligne