Partage
  • Partager sur Facebook
  • Partager sur Twitter

Soucis Symphony 5.2 et PHP 8.0.1

22 janvier 2021 à 16:22:22

Bonjour,

Je me permets de vous contacter car je viens de commencer un projet Symfony avec PHP 8.0.1 (Utilisation de XAMPP) et j'ai cette erreur lors de l'utilisation de cette commande :

php bin/console doctrine:migrations:migrate

Celà me donne cette erreur :

 WARNING! You are about to execute a migration in database "caranille" that could result in schema changes and data loss. Are you sure you wish to continue? (yes/no) [yes]:
 > yes

[notice] Migrating up to DoctrineMigrations\Version20210122145415

In Connection.php line 1761:

  There is no active transaction  


doctrine:migrations:migrate [--write-sql [WRITE-SQL]] [--dry-run] [--query-time] [--allow-no-migration] [--all-or-nothing [ALL-OR-NOTHING]] [--configuration CONFIGURATION] [--] [<version>]

Voici le fichier de la migration :

<?php

declare(strict_types=1);

namespace DoctrineMigrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;

/**
 * Auto-generated Migration: Please modify to your needs!
 */
final class Version20210122145415 extends AbstractMigration
{
    public function getDescription() : string
    {
        return '';
    }

    public function up(Schema $schema) : void
    {
        // this up() migration is auto-generated, please modify it to your needs
        $this->addSql('CREATE TABLE account (id INT AUTO_INCREMENT NOT NULL, pseudo VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
    }

    public function down(Schema $schema) : void
    {
        // this down() migration is auto-generated, please modify it to your needs
        $this->addSql('DROP TABLE account');
    }
}

J'ai donc fait un test avec PHP 7.4 (Toujours Xampp) et avec le même code aucun soucis ça fonctionne.

Voilà pourtant j'ai regardé sur le github de l'orm doctrine qui indique que la version 3.X était compatible avec PHP 8.X et c'est cette version de doctrine que j'ai.

Voici mon .env :

###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
#
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
# DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7"
DATABASE_URL="mysql://root@127.0.0.1:3306/caranille?serverVersion=mariadb-10.4.17"
###< doctrine/doctrine-bundle ###

Merci de votre aide

-
Edité par mycaranille 22 janvier 2021 à 16:24:25

  • Partager sur Facebook
  • Partager sur Twitter
22 janvier 2021 à 19:48:23

Bonjour,

Oui j'étais tombé dessus mais quand j'ai vu que l'issue date de 22 jours je me suis dit ça peut plus être ça

Bien cordialement,

  • Partager sur Facebook
  • Partager sur Twitter
23 janvier 2021 à 19:09:33

Je viens d'avoir la même aventure, donc si je trouve je reviens .

  • Partager sur Facebook
  • Partager sur Twitter
23 janvier 2021 à 22:22:39

Merci MatTheCat et PascalMoreno

J'attendrais votre retour, pour le moment je met mon projet en pause le temps que ce soit corrigé

  • Partager sur Facebook
  • Partager sur Twitter
26 janvier 2021 à 2:20:28

Dans https://github.com/doctrine/migrations/issues/1104

la solution c'est d'ajouter ce code dans tous fichiers de Migrations:

public function isTransactional(): bool
{
    return false;
}

-
Edité par ismaail 26 janvier 2021 à 2:22:28

  • Partager sur Facebook
  • Partager sur Twitter
26 octobre 2021 à 2:51:01

je suis Tombe sur le meme problème après avoir fait une jointure entre mes deux tables . 

Du coup ce qui a marcher pour moi.

symfony console doctrine:database:drop --force  ( car mes donner avant ne respecter plus mes contrainte de ma cle étrangère)

symfony console doctrine:database:create

symfony console doctrine:migrations:migrate --dry-run. 

symfony console doctrine:migrations:migrate


avec php bin/console a la place de symfony console si besoin

  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2021 à 14:48:15

j'ai downgrade php 8.0 en php 7.4 et ca a marché
  • Partager sur Facebook
  • Partager sur Twitter
5 novembre 2021 à 15:58:22

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL