J'ai hérité d'un projet Symfony 3 sans migrations.Doctrine Migrations avec Symfony 3 addIndex non trouvé. Pourquoi?
Après le documentation, j'ai ajouté le paquet de migration de Doctrine à Symfony.
$ composer require doctrine/doctrine-migrations-bundle "^1.0"
Ajouté à la configuration config.yml
doctrine_migrations:
dir_name: "%kernel.root_dir%/DoctrineMigrations"
namespace: Application\Migrations
table_name: migration_versions
name: Application Migrations
ensuite ajouté le chargeur à appKernel.php
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
La console affiche désormais la doctrine: les migrations: * les fonctionnalités disponibles, donc J'ai ensuite généré mon fichier de migration
php bin/console doctrine:migrations:generate
Generated new migration class to "/path/to/project/app/DoctrineMigrations/Version20100621140655.php"
ensuite continué suivant avec le Doctrine migrations documentation:
public function up(Schema $schema)
{
// alter my table
$options = ['fields' => ['type_id']];
$schema->addIndex('advertiser', 'idx_type_id', $options);
...
}
Maintenant, quand je lance la migration:
Migrating up to 20170714165306 from 20170714155549
++ migrating 20170714165306
[Symfony\Component\Debug\Exception\UndefinedMethodException]
Attempted to call an undefined method named "addIndex" of class "ProxyManagerGeneratedProxy\__PM__\Doctrine\DBAL\Schema\Schema\Generatedaca9b50393335f8354881e485c485329".
Maintenant, quand je suis arrivé cette erreur, je cherchais sur cela et trouvé ocramius/ProxyManager. J'ai installé cela avec
composer require ocramius/proxy-manager "^2.0"
Toujours eu la même erreur.
Certes, dans la plupart des documents Migrations Doctrine, je vois principalement addSql('ALTER TABLE ...')
déclarations de type, mais je veux utiliser les méthodes wrapper addIndex
, removeIndex
, etc.
Quelqu'un peut-il expliquer comment obtenir ces fonctionnalités de travail?
La documentation référencée ne ressemble pas au paquetage 'doctrine-migrations-bundle', mais essayez ceci' $ schema-> getTable ('table_name') -> addIndex (...) 'consultez le' addIndex () 'signature. – yceruto