/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $this->createAuditField($schema); $queries->addPostQuery(new MigrateAuditFieldQuery()); $queries->addPostQuery('ALTER TABLE oro_audit DROP COLUMN data'); $queries->addPostQuery($this->getDropEntityConfigFieldQuery('Oro\\Bundle\\DataAuditBundle\\Entity\\Audit', 'data')); }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $schema->dropTable('oro_calendar_connection'); $calendarConnectionClass = 'Oro\\Bundle\\CalendarBundle\\Entity\\CalendarConnection'; $queries->addPostQuery(new ParametrizedSqlMigrationQuery('DELETE FROM oro_entity_config_field WHERE entity_id IN (' . 'SELECT id FROM oro_entity_config WHERE class_name = :class)', ['class' => $calendarConnectionClass], ['class' => 'string'])); $queries->addPostQuery(new ParametrizedSqlMigrationQuery('DELETE FROM oro_entity_config WHERE class_name = :class', ['class' => $calendarConnectionClass], ['class' => 'string'])); $queries->addPostQuery(new DeleteAclMigrationQuery($this->container, new ObjectIdentity('entity', $calendarConnectionClass))); }
/** * Modify entity config to exclude currency and currency_precision fields * * @param Schema $schema * @param QueryBag $queries */ public static function updateConfigs(Schema $schema, QueryBag $queries) { $table = $schema->getTable('oro_organization'); $table->dropColumn('currency'); $table->dropColumn('currency_precision'); if ($schema->hasTable('oro_entity_config_index_value') && $schema->hasTable('oro_entity_config_field')) { $queries->addPostQuery(new ParametrizedSqlMigrationQuery('DELETE FROM oro_entity_config_index_value ' . 'WHERE entity_id IS NULL AND field_id IN (' . 'SELECT oecf.id FROM oro_entity_config_field AS oecf ' . 'WHERE oecf.field_name IN (:field_names) ' . 'AND oecf.entity_id = (' . 'SELECT oec.id FROM oro_entity_config AS oec WHERE oec.class_name = :class_name' . '))', ['field_names' => ['precision', 'currency'], 'class_name' => 'Oro\\Bundle\\OrganizationBundle\\Entity\\Organization'], ['field_names' => Connection::PARAM_STR_ARRAY, 'class_name' => Type::STRING])); $queries->addPostQuery(new ParametrizedSqlMigrationQuery('DELETE FROM oro_entity_config_field ' . 'WHERE field_name IN (:field_names) ' . 'AND entity_id IN (' . 'SELECT id FROM oro_entity_config WHERE class_name = :class_name' . ')', ['field_names' => ['precision', 'currency'], 'class_name' => 'Oro\\Bundle\\OrganizationBundle\\Entity\\Organization'], ['field_names' => Connection::PARAM_STR_ARRAY, 'class_name' => Type::STRING])); } }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $table = $schema->getTable('oro_calendar_property'); $table->getColumn('background_color')->setOptions(['length' => 7]); $table->dropColumn('color'); $table = $schema->getTable('oro_calendar_event'); $table->addColumn('background_color', 'string', ['notnull' => false, 'length' => 7]); $queries->addPostQuery($this->getUpdateBackgroundColorValuesQuery()); $queries->addPostQuery($this->getDropEntityConfigFieldQuery('Oro\\Bundle\\CalendarBundle\\Entity\\CalendarProperty', 'color')); }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $table = $schema->getTable('orocrm_magento_order_items'); $table->addColumn('owner_id', 'integer', ['notnull' => false]); $table->addIndex(['owner_id'], 'IDX_3135EFF67E3C61F9', []); $table->addForeignKeyConstraint($schema->getTable('oro_organization'), ['owner_id'], ['id'], ['onDelete' => 'SET NULL']); $queries->addPostQuery('UPDATE orocrm_magento_order_items itm ' . 'SET owner_id = (SELECT organization_id FROM orocrm_magento_order WHERE itm.order_id = id)'); $table = $schema->getTable('orocrm_magento_cart_item'); $table->addColumn('owner_id', 'integer', ['notnull' => false]); $table->addIndex(['owner_id'], 'IDX_A73DC8627E3C61F9', []); $table->addForeignKeyConstraint($schema->getTable('oro_organization'), ['owner_id'], ['id'], ['onDelete' => 'SET NULL']); $queries->addPostQuery('UPDATE orocrm_magento_cart_item itm ' . 'SET owner_id = (SELECT organization_id FROM orocrm_magento_cart WHERE itm.cart_id = id)'); }
/** * @inheritdoc */ public function up(Schema $schema, QueryBag $queries) { $this->modifyOrocrmSalesLeadTable($schema); $this->modifyOrocrmSalesOpportunityTable($schema); $this->modifyOrocrmSalesSalesFunnelTable($schema); $queries->addPostQuery(new MigrateAccountRelations()); }
/** * @param Schema $schema * @param QueryBag $queries * @param string $tableName * @param string $columnName * @param string $type * * @throws \Exception */ public function changePrimaryKeyType(Schema $schema, QueryBag $queries, $tableName, $columnName, $type) { $targetColumn = $schema->getTable($tableName)->getColumn($columnName); $type = Type::getType($type); if ($targetColumn->getType() === $type) { return; } /** @var ForeignKeyConstraint[] $foreignKeys */ $foreignKeys = []; foreach ($schema->getTables() as $table) { /** @var ForeignKeyConstraint[] $tableForeignKeys */ $tableForeignKeys = array_filter($table->getForeignKeys(), function (ForeignKeyConstraint $tableForeignKey) use($tableName, $columnName) { if ($tableForeignKey->getForeignTableName() !== $tableName) { return false; } return $tableForeignKey->getForeignColumns() === [$columnName]; }); foreach ($tableForeignKeys as $tableForeignKey) { $foreignKeys[$tableForeignKey->getName()] = $tableForeignKey; $foreignKeyTableName = $tableForeignKey->getLocalTable()->getName(); $foreignKeyColumnNames = $tableForeignKey->getLocalColumns(); $queries->addPreQuery($this->platform->getDropForeignKeySQL($tableForeignKey, $foreignKeyTableName)); $column = $schema->getTable($foreignKeyTableName)->getColumn(reset($foreignKeyColumnNames)); if ($column instanceof ExtendColumn) { $column->disableExtendOptions()->setType($type)->enableExtendOptions(); } else { $column->setType($type); } } } $targetColumn->setType($type); foreach ($foreignKeys as $foreignKey) { $queries->addPostQuery($this->platform->getCreateForeignKeySQL($foreignKey, $foreignKey->getLocalTable())); } }
/** * Modify entity config to exclude currency and currency_precision fields * * @param Schema $schema * @param QueryBag $queries */ public static function updateConfigs(Schema $schema, QueryBag $queries) { $table = $schema->getTable('oro_organization'); $table->dropColumn('currency'); $table->dropColumn('currency_precision'); if ($schema->hasTable('oro_entity_config_index_value') && $schema->hasTable('oro_entity_config_field')) { $queries->addPostQuery('DELETE FROM oro_entity_config_index_value WHERE entity_id IS NULL AND field_id IN( SELECT oecf.id FROM oro_entity_config_field AS oecf WHERE (oecf.field_name = \'precision\' OR oecf.field_name = \'currency\') AND oecf.entity_id = ( SELECT oec.id FROM oro_entity_config AS oec WHERE oec.class_name = \'Oro\\\\Bundle\\\\OrganizationBundle\\\\Entity\\\\Organization\' ) ); DELETE FROM oro_entity_config_field WHERE field_name IN (\'precision\', \'currency\') AND entity_id IN ( SELECT id FROM oro_entity_config WHERE class_name = \'Oro\\\\Bundle\\\\OrganizationBundle\\\\Entity\\\\Organization\' )'); } }
/** * Update navigation history with route names and parameters * * @param QueryBag $queries */ protected function updateNavigationHistory(QueryBag $queries) { $queryBuilder = $this->em->getRepository('OroNavigationBundle:NavigationHistoryItem')->createQueryBuilder('h')->select('h.id, h.url'); $paginator = new Paginator($queryBuilder, false); foreach ($paginator as $navItem) { try { $url = str_replace('app_dev.php/', '', $navItem['url']); $routeData = $this->router->match($url); $entityId = isset($routeData['id']) ? (int) $routeData['id'] : null; $route = $routeData['_route']; unset($routeData['_controller'], $routeData['id'], $routeData['_route']); $queries->addPostQuery(sprintf('UPDATE oro_navigation_history ' . 'SET route = \'%s\', entity_id = %d, route_parameters=\'%s\' WHERE id = %d', $route, $entityId, serialize($routeData), $navItem['id'])); } catch (\RuntimeException $e) { $queries->addPostQuery(sprintf('UPDATE oro_navigation_history SET route_parameters = \'%s\' WHERE id=%d', serialize([]), $navItem['id'])); } } }
public static function removeRoleOwner(Schema $schema, QueryBag $queries) { $table = $schema->getTable('oro_access_role'); if ($table->hasColumn('business_unit_owner_id')) { $queries->addQuery(new UpdateRoleOwnerQuery()); if ($table->hasForeignKey('FK_673F65E759294170')) { $table->removeForeignKey('FK_673F65E759294170'); } if ($table->hasIndex('IDX_F82840BC59294170')) { $table->dropIndex('IDX_F82840BC59294170'); } $table->dropColumn('business_unit_owner_id'); if ($schema->hasTable('oro_entity_config_index_value') && $schema->hasTable('oro_entity_config_field')) { $queries->addPostQuery(new ParametrizedSqlMigrationQuery('DELETE FROM oro_entity_config_index_value ' . 'WHERE entity_id IS NULL AND field_id IN (' . 'SELECT oecf.id FROM oro_entity_config_field AS oecf ' . 'WHERE oecf.field_name = :field_name ' . 'AND oecf.entity_id IN (' . 'SELECT oec.id FROM oro_entity_config AS oec WHERE oec.class_name = :class_name' . '))', ['field_name' => 'owner', 'class_name' => 'Oro\\Bundle\\UserBundle\\Entity\\Role'], ['field_name' => 'string', 'class_name' => 'string'])); $queries->addPostQuery(new ParametrizedSqlMigrationQuery('DELETE FROM oro_entity_config_field ' . 'WHERE field_name = :field_name ' . 'AND entity_id IN (' . 'SELECT oec.id FROM oro_entity_config AS oec WHERE oec.class_name = :class_name' . ')', ['field_name' => 'owner', 'class_name' => 'Oro\\Bundle\\UserBundle\\Entity\\Role'], ['field_name' => 'string', 'class_name' => 'string'])); } } }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { /** * After v1_3 migration * Undefined table: 7 ERROR: relation "oro_dashboard_active_id_seq" does not exist */ if ($this->platform->supportsSequences()) { $queries->addPostQuery('ALTER SEQUENCE IF EXISTS oro_dashboard_active_copy_id_seq RENAME TO oro_dashboard_active_id_seq;'); } }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { // Copy values from VAT to temp auxiliary column with correction $query = 'UPDATE orocrm_magento_customer ' . 'SET vat_temp = ROUND(vat * 100.0) ' . 'WHERE vat IS NOT NULL'; $queries->addPreQuery($query); // Change data type of the VAT column $schema->getTable('orocrm_magento_customer')->getColumn('vat')->setType(Type::getType(Type::STRING)); // Copy values back to VAT column $query = 'UPDATE orocrm_magento_customer ' . 'SET vat = vat_temp ' . 'WHERE vat IS NOT NULL'; $queries->addPostQuery($query); }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $queries->addPreQuery($this->getFillUserActivityQuery()); $queries->addPreQuery($this->getFillAccountActivityQuery()); $queries->addPreQuery($this->getFillContactActivityQuery()); $queries->addPreQuery($this->getFillPhoneQuery()); $callTable = $schema->getTable('orocrm_call'); // relation with account $callTable->removeForeignKey('FK_1FBD1A2411A6570A'); $callTable->dropColumn('related_account_id'); $queries->addPostQuery($this->getDropEntityConfigManyToOneRelationQuery('relatedAccount')); // relation with contact $callTable->removeForeignKey('FK_1FBD1A246D6C2DFA'); $callTable->dropColumn('related_contact_id'); $queries->addPostQuery($this->getDropEntityConfigManyToOneRelationQuery('relatedContact')); // relation with contact phone $callTable->removeForeignKey('FK_1FBD1A24A156BF5C'); $callTable->dropColumn('contact_phone_id'); $queries->addPostQuery($this->getDropEntityConfigManyToOneRelationQuery('contactPhoneNumber')); }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $className = 'OroCRM\\Bundle\\MagentoBundle\\Entity\\MagentoSoapTransport'; $dropFieldsSql = 'DELETE FROM oro_entity_config_field' . ' WHERE entity_id IN (' . ' SELECT id' . ' FROM oro_entity_config' . ' WHERE class_name = :class' . ' )'; $dropFieldsQuery = new ParametrizedSqlMigrationQuery(); $dropFieldsQuery->addSql($dropFieldsSql, ['class' => $className], ['class' => 'string']); $queries->addPostQuery($dropFieldsQuery); $dropConfigurationSql = 'DELETE FROM oro_entity_config WHERE class_name = :class'; $dropConfigurationQuery = new ParametrizedSqlMigrationQuery(); $dropConfigurationQuery->addSql($dropConfigurationSql, ['class' => $className], ['class' => 'string']); $queries->addQuery($dropConfigurationQuery); }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { // update data in accordance with new column requirement $queries->addPreQuery(sprintf("UPDATE oro_email SET message_id = CONCAT('id.', REPLACE(%s, '-',''), '%s') WHERE message_id IS NULL", $this->platform->getGuidExpression(), '@bap.migration.generated')); self::oroEmailToFolderRelationTable($schema); // make message_id not null & add index $table = $schema->getTable('oro_email'); $table->changeColumn('message_id', ['notnull' => true]); $table->addIndex(['message_id'], 'IDX_email_message_id', []); // migrate existing email-folder relations $queries->addPostQuery("INSERT INTO oro_email_to_folder (email_id, emailfolder_id) SELECT id, folder_id FROM oro_email"); }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { // Add minimal id received during newsletter_subscriber_initial sync $table = $schema->getTable('oro_integration_transport'); $table->addColumn('mage_newsl_subscr_synced_to_id', 'integer', ['notnull' => false]); // Remove unique constraint on customer_id $table = $schema->getTable('orocrm_magento_newsl_subscr'); $table->dropIndex('uniq_7c8eaa9395c3f3'); $table->addIndex(['customer_id']); // Delete sync status for newsletter_subscriber_initial connector to be able to force it's update $sql = sprintf("DELETE FROM oro_integration_channel_status WHERE connector = '%s'", InitialNewsletterSubscriberConnector::TYPE); $queries->addPostQuery(new SqlMigrationQuery($sql)); }
/** * @param Schema $schema * @param QueryBag $queries * @throws \Doctrine\DBAL\Schema\SchemaException */ public static function removeUserACFields(Schema $schema, QueryBag $queries) { $tableName = 'oro_user'; $className = 'Oro\\Bundle\\UserBundle\\Entity\\User'; $queries->addPostQuery(new UpdateConfigQuery()); $table = $schema->getTable($tableName); foreach (array_keys(ActivityScope::$fieldsConfiguration) as $fieldName) { if ($table->hasColumn($fieldName)) { $table->dropColumn($fieldName); $queries->addQuery(OroCRMActivityContactBundle::getDropEntityConfigFieldQuery($className, $fieldName)); } } }
public function testBag() { $queries = new QueryBag(); $queries->addPreQuery('query1'); $queries->addPreQuery('query2'); $queries->addPostQuery('query3'); $queries->addQuery('query4'); $this->assertEquals(['query1', 'query2'], $queries->getPreQueries()); $this->assertEquals(['query3', 'query4'], $queries->getPostQueries()); $queries->clear(); $this->assertCount(0, $queries->getPreQueries()); $this->assertCount(0, $queries->getPostQueries()); }
/** * @param QueryBag $queries * @param string $bundle * @param string $type * @param string $version */ protected function processFixtures(QueryBag $queries, $bundle, $type, $version) { if ($version && !empty($this->mappingData[$bundle][$type])) { $fixturesByVersions = $this->mappingData[$bundle][$type]; foreach ($fixturesByVersions as $fixtureVersion => $fixtures) { if (version_compare($fixtureVersion, $version, '<=')) { foreach ($fixtures as $fixture) { $queries->addPostQuery($this->getInsertFixtureSql($fixture)); } } } } }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $table = $schema->getTable('oro_email_origin'); if ($table->hasColumn('imap_user')) { $queries->addPostQuery(new ParametrizedSqlMigrationQuery('UPDATE oro_email_folder AS ef SET sync_enabled = :sync WHERE ef.id IN ( SELECT eu.folder_id FROM oro_email_user AS eu WHERE eu.folder_id = ef.id GROUP BY eu.folder_id ) AND ef.origin_id IN ( SELECT eo.id FROM oro_email_origin AS eo WHERE eo.id = ef.origin_id AND (eo.name = :name_old OR eo.name = :name_new) GROUP BY eo.id ); ', ['sync' => true, 'name_old' => 'imapemailorigin', 'name_new' => 'useremailorigin'], ['sync' => Type::BOOLEAN, 'name_old' => Type::STRING, 'name_new' => Type::STRING])); } }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $queries->addPreQuery($this->getFillAccountActivityQuery()); $queries->addPreQuery($this->getFillContactActivityQuery()); // fill empty updatedAt of orocrm_task $queries->addPreQuery('UPDATE orocrm_task SET updatedAt = createdAt WHERE updatedAt IS NULL'); $taskTable = $schema->getTable('orocrm_task'); $this->enableDataAudit($taskTable); // relation with account $taskTable->removeForeignKey('FK_814DEE3F11A6570A'); $taskTable->dropColumn('related_account_id'); $queries->addPostQuery($this->getDropEntityConfigManyToOneRelationQuery('relatedAccount')); // relation with contact $taskTable->removeForeignKey('FK_814DEE3F6D6C2DFA'); $taskTable->dropColumn('related_contact_id'); $queries->addPostQuery($this->getDropEntityConfigManyToOneRelationQuery('relatedContact')); // reporter $taskTable->removeForeignKey('fk_orocrm_task_reporter_id'); $taskTable->dropColumn('reporter_id'); $queries->addPostQuery($this->getDropEntityConfigManyToOneRelationQuery('reporter')); // make updatedAt NOT NULL $taskTable->getColumn('updatedAt')->setOptions(['notnull' => true]); }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { foreach ($this->fields as $fieldName => $entityClasses) { foreach ($entityClasses as $entityClass) { $dropFieldsSql = <<<EOF DELETE FROM oro_entity_config_field WHERE field_name = :field_name AND entity_id IN (SELECT id FROM oro_entity_config WHERE class_name = :class_name) EOF; $dropFieldsQuery = new ParametrizedSqlMigrationQuery(); $dropFieldsQuery->addSql($dropFieldsSql, ['field_name' => $fieldName, 'class_name' => $entityClass], ['field_name' => Type::STRING, 'class_name' => Type::STRING]); $queries->addPostQuery($dropFieldsQuery); } } }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $table = $schema->getTable('orocrm_magento_order'); $table->addColumn('imported_at', 'datetime', ['notnull' => false, 'comment' => '(DC2Type:datetime)']); $table->addColumn('synced_at', 'datetime', ['notnull' => false, 'comment' => '(DC2Type:datetime)']); $updateDates = 'UPDATE orocrm_magento_order SET imported_at = created_at, synced_at = updated_at'; $updateDatesQuery = new ParametrizedSqlMigrationQuery(); $updateDatesQuery->addSql($updateDates); $queries->addPostQuery($updateDatesQuery); $table = $schema->getTable('orocrm_magento_customer'); $table->addColumn('imported_at', 'datetime', ['notnull' => false, 'comment' => '(DC2Type:datetime)']); $table->addColumn('synced_at', 'datetime', ['notnull' => false, 'comment' => '(DC2Type:datetime)']); $updateDates = 'UPDATE orocrm_magento_customer SET imported_at = created_at, synced_at = updated_at'; $updateDatesQuery = new ParametrizedSqlMigrationQuery(); $updateDatesQuery->addSql($updateDates); $queries->addPostQuery($updateDatesQuery); $table = $schema->getTable('orocrm_magento_cart'); $table->addColumn('imported_at', 'datetime', ['notnull' => false, 'comment' => '(DC2Type:datetime)']); $table->addColumn('synced_at', 'datetime', ['notnull' => false, 'comment' => '(DC2Type:datetime)']); $updateDates = 'UPDATE orocrm_magento_cart SET imported_at = createdat, synced_at = updatedat'; $updateDatesQuery = new ParametrizedSqlMigrationQuery(); $updateDatesQuery->addSql($updateDates); $queries->addPostQuery($updateDatesQuery); }
/** * Delete old akeneo job instance records * * @param QueryBag $queries */ protected function deleteObsoleteJobInstances(QueryBag $queries) { $sql = <<<SQL DELETE FROM akeneo_batch_job_instance WHERE NOT EXISTS (SELECT je.id FROM akeneo_batch_job_execution je WHERE je.job_instance_id = akeneo_batch_job_instance.id) SQL; $queries->addPostQuery(new SqlMigrationQuery($sql)); }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $table = $schema->createTable('oro_dashboard_active_copy'); $table->addColumn('id', 'integer', ['autoincrement' => true]); $table->setPrimaryKey(['id']); $table->addColumn('organization_id', 'integer', ['notnull' => false]); $table->addColumn('user_id', 'integer', ['notnull' => false]); $table->addColumn('dashboard_id', 'integer', ['notnull' => false]); $table->addIndex(['user_id'], 'IDX_858BA17EA76ED395', []); $table->addIndex(['dashboard_id'], 'IDX_858BA17EB9D04D2B', []); $table->addIndex(['organization_id'], 'IDX_858BA17E32C8A3DE', []); $table->addForeignKeyConstraint($schema->getTable('oro_user'), ['user_id'], ['id'], ['onDelete' => 'CASCADE', 'onUpdate' => null]); $table->addForeignKeyConstraint($schema->getTable('oro_organization'), ['organization_id'], ['id'], ['onDelete' => 'SET NULL', 'onUpdate' => null]); $table->addForeignKeyConstraint($schema->getTable('oro_dashboard'), ['dashboard_id'], ['id'], ['onDelete' => 'CASCADE', 'onUpdate' => null]); $queries->addPostQuery("INSERT INTO oro_dashboard_active_copy (user_id, dashboard_id)\n SELECT user_id, dashboard_id\n FROM oro_dashboard_active;\n\n DROP TABLE oro_dashboard_active;\n ALTER TABLE oro_dashboard_active_copy RENAME TO oro_dashboard_active;"); }
/** * @inheritdoc */ public function up(Schema $schema, QueryBag $queries) { $sql = <<<SQL UPDATE orocrm_sales_b2bcustomer c SET lifetime = ( SELECT SUM(o.close_revenue) lifetime FROM orocrm_sales_opportunity o WHERE o.status_name = '%s' AND o.customer_id = c.id ) SQL; $queries->addPostQuery(new SqlMigrationQuery(sprintf($sql, B2bCustomerRepository::VALUABLE_STATUS))); }
/** * {@inheritdoc} */ public function up(Schema $schema, QueryBag $queries) { $table = $schema->createTable('oro_calendar_property'); $table->addColumn('id', 'integer', ['autoincrement' => true]); $table->addColumn('target_calendar_id', 'integer', []); $table->addColumn('calendar_alias', 'string', ['length' => 32]); $table->addColumn('calendar_id', 'integer', []); $table->addColumn('position', 'integer', ['default' => 0]); $table->addColumn('visible', 'boolean', ['default' => true]); $table->addColumn('color', 'string', ['notnull' => false, 'length' => 6]); $table->addColumn('background_color', 'string', ['notnull' => false, 'length' => 6]); $table->setPrimaryKey(['id']); $table->addIndex(['target_calendar_id'], 'IDX_660946D18D7AEDC2', []); $table->addUniqueIndex(['calendar_alias', 'calendar_id', 'target_calendar_id'], 'oro_calendar_prop_uq'); $table->addForeignKeyConstraint($schema->getTable('oro_calendar'), ['target_calendar_id'], ['id'], ['onUpdate' => null, 'onDelete' => 'CASCADE']); // fill oro_calendar_property from oro_calendar_connection $queries->addPostQuery(new ParametrizedSqlMigrationQuery('INSERT INTO oro_calendar_property' . ' (target_calendar_id, calendar_alias, calendar_id, color, background_color)' . ' SELECT calendar_id, :calendar_alias, connected_calendar_id, color, background_color' . ' FROM oro_calendar_connection', ['calendar_alias' => 'user'], ['calendar_alias' => 'string'])); }
public static function removeRoleOwner(Schema $schema, QueryBag $queries) { $table = $schema->getTable('oro_access_role'); if ($table->hasColumn('business_unit_owner_id')) { $queries->addQuery(new UpdateRoleOwnerQuery()); if ($table->hasForeignKey('FK_673F65E759294170')) { $table->removeForeignKey('FK_673F65E759294170'); } if ($table->hasIndex('IDX_F82840BC59294170')) { $table->dropIndex('IDX_F82840BC59294170'); } $table->dropColumn('business_unit_owner_id'); if ($schema->hasTable('oro_entity_config_index_value') && $schema->hasTable('oro_entity_config_field')) { $queries->addPostQuery('DELETE FROM oro_entity_config_index_value WHERE entity_id IS NULL AND field_id IN( SELECT oecf.id FROM oro_entity_config_field AS oecf WHERE (oecf.field_name = \'owner\') AND oecf.entity_id = ( SELECT oec.id FROM oro_entity_config AS oec WHERE oec.class_name = \'Oro\\\\Bundle\\\\UserBundle\\\\Entity\\\\Role\' ) ); DELETE FROM oro_entity_config_field WHERE field_name IN (\'owner\') AND entity_id IN ( SELECT id FROM oro_entity_config WHERE class_name = \'Oro\\\\Bundle\\\\UserBundle\\\\Entity\\\\Role\' ); '); } } }
/** * @param QueryBag $queries * @param array $optionSets */ protected function removeOptionSetAttributes(QueryBag $queries, array $optionSets) { $configFieldIds = array_map(function (array $optionSet) { return $optionSet['field_id']; }, $optionSets); $queries->addPostQuery(new RemoveOptionSetAttributesQuery($configFieldIds)); }
/** * @param QueryBag $queries */ public static function addPostQueries(QueryBag $queries) { $queries->addPostQuery(new UpdateEmailBodyRelationQuery()); $queries->addPostQuery(new DeleteEmailPermissionConfig()); }