現在設定されている変数(drush vgetを実行しているかどうかを確認できるように)をエクスポートできるモジュールが Features とは別にあります-正しい形式でインストールプロファイルにコピーして貼り付けることができます。 -例variable_set('admin_theme', 'minimal');
など。
これは2つの関数です。定義されたすべての変数をクエリしてエクスポートする簡単な関数を持つメニューコールバックです。
必要なモジュールの依存関係はなく、Drupalコアのみです。
/**
* Implements hook_menu
*/
function MODULE_menu() {
$items['export/variables'] = array(
'title' => 'Export variables',
'page callback' => 'MODULE_export_variables',
'access arguments' => array('administer site configuration'),
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Menu callback to export variables
*/
function MODULE_export_variables(){
// Fetch and export variables from the database.
$query = db_select('variable');
$query->fields('variable');
$query->orderBy('name');
$result = $query->execute();
$output = array();
$output[] = '<pre>';
foreach($result as $row){
$output[] = 'variable_set("'.$row->name.'", '.var_export(unserialize($row->value), 1).');';
}
$output[] = '</pre>';
print implode(PHP_EOL, $output);
drupal_exit();
}
http://yoursite.com/export/variables
にアクセスして、インストールプロファイルにコピー/貼り付けするための生の出力を取得します。
1年ほど前、私は 作業サイトをインストールプロファイルとしてエクスポートする のDrushコマンドに取り組んでいました。しばらく作業していませんが、構成管理モジュールのようなものを使用したり、インストールプロファイルにサイト構成情報を含めるために Drush CTools Export Bonus を使用したりすることが私の意図でした。
インストールプロファイルを手動で生成する場合は、通常、variable_setコマンドを記述して、インストールプロファイルに直接配置します。ただし、構成情報を生成するときは、通常、構成情報が他のモジュールにバンドルされていると思います。
最初の質問に答える
慣例により、変数テーブルの変数は、それらを定義したモジュールにちなんで名前が付けられているため、全員が協力していれば、変数の出所がわかります。 Drupalの新しいコピーをインストールし、Drupalが定義する変数とそのデフォルト値を書き留めます。これらをサイトの値と比較して、変更した値を見つけます。 contribモジュールについても同じことを行い、各モジュールをスクラッチサイトにインストールして、デフォルト値を確認します。もう1つのオプションは、Strongarmを使用することです。これにより、他の機能モジュールと同じように、(変更されたときに)変更された変数が表示されます。
ただし、ここでの問題は、すべての構成が変数テーブルに格納されるわけではないことです。一部のモジュールは独自のテーブルを定義します。構成を手動でコーディングする場合は、使用する各モジュールのAPIを順番に調べ、プログラムで設定を行う方法を理解する必要があります。これは難しいことです。そのため、ほとんどの人が機能、構成管理モジュール、またはCtoolsエクスポートボーナスを使用しています。すべてがエクスポート可能ファイルをサポートしているわけではないため、これらのモジュールでさえ必ずしも十分ではありません。 D8のCMイニシアチブがこの問題に取り組んでいるのは良いことです。
構成管理 モジュールが必要なようです:
構成管理モジュールは、Drupalサイト上の特定の構成を追跡し、これらの構成を異なる環境(ローカル、開発、qa、製品)間で移動する機能を提供し、さらにすべての構成がサイトによって所有されているモジュールを使用せずに、完全に異なるサイト間の構成(移行構成)。
ほとんどの場合、このモジュールはfeaturesモジュールのサブセットと同じ機能を提供します。
したがって、何らかの理由で機能が適切でない場合は、これが良い代替品になる可能性があります。