Example #1
0
 /**
  * {@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]));
     }
 }
Example #4
0
 /**
  * {@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'));
 }
Example #5
0
 /**
  * {@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)');
 }
Example #6
0
 /**
  * @inheritdoc
  */
 public function up(Schema $schema, QueryBag $queries)
 {
     $this->modifyOrocrmSalesLeadTable($schema);
     $this->modifyOrocrmSalesOpportunityTable($schema);
     $this->modifyOrocrmSalesSalesFunnelTable($schema);
     $queries->addPostQuery(new MigrateAccountRelations());
 }
Example #7
0
 /**
  * @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\'
                 )');
     }
 }
Example #9
0
 /**
  * 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']));
         }
     }
 }
Example #10
0
 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']));
         }
     }
 }
Example #11
0
 /**
  * {@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;');
     }
 }
Example #12
0
 /**
  * {@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);
 }
Example #13
0
 /**
  * {@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);
 }
Example #15
0
 /**
  * {@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");
 }
Example #16
0
 /**
  * {@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));
         }
     }
 }
Example #18
0
 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]));
     }
 }
Example #21
0
 /**
  * {@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]);
 }
Example #22
0
    /**
     * {@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);
            }
        }
    }
Example #23
0
 /**
  * {@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);
 }
Example #24
0
    /**
     * 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));
    }
Example #25
0
 /**
  * {@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;");
 }
Example #26
0
    /**
     * @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)));
    }
Example #27
0
 /**
  * {@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']));
 }
Example #28
0
 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));
 }
Example #30
0
 /**
  * @param QueryBag $queries
  */
 public static function addPostQueries(QueryBag $queries)
 {
     $queries->addPostQuery(new UpdateEmailBodyRelationQuery());
     $queries->addPostQuery(new DeleteEmailPermissionConfig());
 }