web-dev-qa-db-ja.com

モジュールの名前を変更できますか?

私は愚かにfeaturesモジュールを作成し、eventsという名前を付けました。もちろん、同じ名前の登録済みモジュールがあるので、これは悪いことです。そのため、更新ステータスレポートは常にエラーになり、drushはモジュールをロックして「更新」しようとしないようにする必要があります。

コンテンツを再作成する必要があるため、アンインストール、再作成、再インストールはしたくありません(はい、バックアップ/復元をインストールしています)。

ディレクトリとファイルの名前を変更することは可能です(推奨).infosystemのレコードを編集しますか?

     ericx ** drupal_addicted ** Wed Sep  3 15:26:29 2014
     sql> select * from system where name='events'\G
    *************************** 1. row ***************************
          filename: sites/dev.addictedtoagility.com/modules/custom/events/events.module
              name: events
              type: module
             owner: 
            status: 1
         bootstrap: 0
    schema_version: 0
            weight: 0
              info: a:11:{s:4:"name";s:6:"Events";s:11:"description";s:49:"Adds the Events content type and supporting stuff";s:4:"core";s:3:"7.x";s:7:"package";s:8:"addicted";s:7:"version";s:7:"7.x-0.1";s:7:"project";s:6:"events";s:12:"dependencies";a:8:{i:0;s:4:"date";i:1;s:11:"event_sites";i:2;s:8:"fe_block";i:3;s:4:"file";i:4;s:4:"list";i:5;s:14:"node_reference";i:6;s:9:"strongarm";i:7;s:5:"views";}s:8:"features";a:7:{s:6:"ctools";a:2:{i:0;s:21:"strongarm:strongarm:1";i:1;s:23:"views:views_default:3.0";}s:17:"fe_block_settings";a:1:{i:0;s:20:"views-events-block_1";}s:12:"features_api";a:1:{i:0;s:5:"api:1";}s:5:"field";a:5:{i:0;s:22:"node-event-field_dates";i:1;s:33:"node-event-field_event_event_site";i:2;s:22:"node-event-field_judge";i:3;s:24:"node-event-field_premium";i:4;s:27:"node-event-field_start_time";}s:4:"node";a:1:{i:0;s:5:"event";}s:8:"variable";a:14:{i:0;s:23:"comment_anonymous_event";i:1;s:26:"comment_default_mode_event";i:2;s:30:"comment_default_per_page_event";i:3;s:13:"comment_event";i:4;s:27:"comment_form_location_event";i:5;s:21:"comment_preview_event";i:6;s:27:"comment_subject_field_event";i:7;s:25:"date_format_month_and_day";i:8;s:33:"field_bundle_settings_node__event";i:9;s:18:"menu_options_event";i:10;s:17:"menu_parent_event";i:11;s:18:"node_options_event";i:12;s:18:"node_preview_event";i:13;s:20:"node_submitted_event";}s:10:"views_view";a:1:{i:0;s:6:"events";}}s:3:"php";s:5:"5.2.4";s:5:"files";a:0:{}s:9:"bootstrap";i:0;}

セット内の1行(0.00秒)

5
ericx

Drupal機能の名前を変更するには、カスタムモジュールの名前を変更するよりも追加の手順が必要です。

解決策1(アン/インストールなし)

  1. DBをバックアップします。
  2. サイトをメンテナンスモードにします。
  3. IDEまたはbashスクリプトで機能の名前を変更します(これを行っている間は、サイトのコンテンツにアクセス/編集しないでください)。
  4. 実行:

    • drush php-eval 'registry_rebuild();'
    • drush updb -n。 (強制drupalモジュール/機能に関連するキャッシュをリロードする)
    • drush cc all

解決策2(証明されているが、アンインストールが必要)

  1. DBをバックアップします。
  2. 手順に従って、この thread の機能の名前を変更します。

各ファイルの新しい名前(人間とマシンの名前)を置き換えるには、IDE NetBeans(または同様のもの)のように使用することをお勧めします。

sedfind のようなクールなUNIXコマンドを使用することもできます。

変更後にコードレビューを行って、正しい場所で名前が変更されたことを確認してください。

注:モジュール/機能に選択した名前がまだ使用されていないことを確認するには、次のコマンドを使用します。

drush pm-list --type=Module --no-core --status=enabled --pipe | sort
3
gerzenstl