Drupal 8 - 内容中的绝对网址

时间:2018-01-10 22:05:40

标签: sql database drupal migration drupal-8

我正在将我的网站从开发环境迁移到生产环境,因此用户在CkEditor,内容或字段中输入的绝对路径网址将不适用于该域。

我该怎么办? 数据库可能很大,所以我在寻找其他东西,而不是搜索和替换40 mo的sql文件。

我正在使用mysql的Drupal 8

1 个答案:

答案 0 :(得分:0)

您可以简单地找到db中的哪些表/字段包含您要替换的绝对URL。然后在mysql中替换它。这是一个例子:

$fields_to_update = [
    ['table' => 'field_data_body', 'field' => 'body_value'],
    ['table' => 'field_data_body', 'field' => 'body_summary'],
    ['table' => 'field_data_field_account_notes', 'field' => 'field_account_notes_value'],
    ['table' => 'field_data_field_extra_text', 'field' => 'field_extra_text_value'],
  ];

  foreach ($fields_to_update as $item) {

    $table = $item['table'];
    $field = $item['field'];

    db_query("UPDATE {$table} SET $field = REPLACE($field, 'http://www.example.com/', :new_name) WHERE $field LIKE BINARY '%http://www.example.com/%'", array(':new_name' => '/'));

  }

希望有所帮助