Как построить MigrateSQLMap в сценарии составного ключа


Как мы можем создать экземпляр MigrateSQLMap, если таблица имеет составной первичный ключ?

1 3

1 ответ:

Поскольку MigrateSQLMap принимает массив, вы можете задать несколько полей в определении источника:

// The source ID here is the one retrieved from each data item in the XML file, and
// used to identify specific items
$this->map = new MigrateSQLMap($this->machineName,
  array(
    'vendor_code' => array(
      'type' => 'varchar',
      'length' => 250,
      'not null' => TRUE,
    ),
    'client_code' => array(
      'type' => 'varchar',
      'length' => 250,
      'not null' => TRUE,
    ),
  ),
  MigrateDestinationEntityAPI::getKeySchema('vendor')
);

В приведенном выше коде* vendor_code *и* client_code * являются компонентами составного ключа.