Esempio n. 1
0
 /**
  * @dataProvider renameColumnProvider
  */
 public function testRenameColumn($platform, $expectedSql)
 {
     $extension = new RenameExtension();
     $extension->setDatabasePlatform($platform);
     $schema = new Schema([new Table('test_table', [new Column('old_column', Type::getType('string'), ['length' => 100])])]);
     $queries = new QueryBag();
     $table = $schema->getTable('test_table');
     $extension->renameColumn($schema, $queries, $table, 'old_column', 'new_column');
     /** @var MigrationQuery $query */
     $query = $queries->getPostQueries()[0];
     $this->assertEquals($expectedSql, $query->getDescription());
 }
 protected function renameOneToManyExtendField(Schema $schema, QueryBag $queries, Table $table, $associationName, $targetEntityClassName, EntityMetadataHelper $entityMetadataHelper)
 {
     $entityClassName = $entityMetadataHelper->getEntityClassByTableName($table->getName());
     $targetTableName = $entityMetadataHelper->getTableNameByEntityClass($targetEntityClassName);
     if ($schema->hasTable($targetTableName)) {
         $targetTable = $schema->getTable($targetTableName);
         $oldTargetColumnName = sprintf('field_%s_%s_id', strtolower(ExtendHelper::getShortClassName($entityClassName)), $associationName);
         if ($targetTable->hasColumn($oldTargetColumnName)) {
             $newTargetColumnName = $this->nameGenerator->generateOneToManyRelationColumnName($entityClassName, $associationName);
             $oldIndexName = $this->nameGenerator->generateIndexName($targetTableName, [$oldTargetColumnName], false, true);
             if ($targetTable->hasIndex($oldIndexName)) {
                 $targetTable->dropIndex($oldIndexName);
             }
             $oldForeignKeyName = $this->nameGenerator->generateForeignKeyConstraintName($targetTableName, [$oldTargetColumnName], true);
             if ($targetTable->hasForeignKey($oldForeignKeyName)) {
                 $targetTable->removeForeignKey($oldForeignKeyName);
             }
             $this->renameExtension->renameColumn($schema, $queries, $targetTable, $oldTargetColumnName, $newTargetColumnName);
             $this->renameExtension->addIndex($schema, $queries, $targetTable->getName(), [$newTargetColumnName]);
             $this->renameExtension->addForeignKeyConstraint($schema, $queries, $targetTable->getName(), $table->getName(), [$newTargetColumnName], $table->getPrimaryKeyColumns(), ['onDelete' => 'SET NULL']);
         }
     }
 }
Esempio n. 3
0
 /**
  * {@inheritdoc}
  */
 public function up(Schema $schema, QueryBag $queries)
 {
     $table = $schema->getTable('oro_tracking_event');
     $this->renameExtension->renameColumn($schema, $queries, $table, 'user', 'user_identifier');
 }
Esempio n. 4
0
 /**
  * {@inheritdoc}
  */
 public function up(Schema $schema, QueryBag $queries)
 {
     $this->renameExtension->renameColumn($schema, $queries, $schema->getTable('oro_workflow_step'), 'final', 'is_final');
 }
Esempio n. 5
0
 /**
  * {@inheritdoc}
  */
 public function renameColumn(Schema $schema, QueryBag $queries, Table $table, $oldColumnName, $newColumnName)
 {
     $this->extendOptionsManager->setColumnOptions($table->getName(), $oldColumnName, [ExtendOptionsManager::NEW_NAME_OPTION => $newColumnName]);
     parent::renameColumn($schema, $queries, $table, $oldColumnName, $newColumnName);
 }