Drupal - 移动模块文件夹

dav*_*ing 14 drupal module

移动我的模块是否安全

  • 来自sites/all/modules /
  • sites/all/modules/contribsites/all/modules/custom

在生产现场?

也就是说,Drupal会自动检测到模块是否仍在那里,但是在新路径中?

ira*_*kli 21

直到D6的Drupal版本将模块位置保留在系统表中,但是从D7开始有多个记录路径的地方(例如registryregistry_file表),所以只是移动文件夹和清除缓存不会这样做,很可能会导致显着的问题.

您可以尝试的一系列步骤:

  1. 备份数据库
  2. 将代码签入版本控制
  3. 运行以下查询:

    UPDATE system
    SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib');
    
    UPDATE registry
    SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib');
    
    UPDATE registry_file
    SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib')
    
    Run Code Online (Sandbox Code Playgroud)
  4. 移动文件夹

  5. 跑: drush cc all


McA*_*den 3

如果您移动一个模块,Drupal 会发现旧模块已损坏,并且存在新模块。它不会假设两者是同一件事——只是移动了。

  • 此外,在 Drupal 7 中,移动模块后您可能会遇到注册表问题。如果遇到此问题,请按照以下 URL 中的说明进行操作:http://drupal.org/project/registry_rebuild (3认同)
  • 如果禁用该模块,移动它,然后在新位置重新启用它,应该没问题。它可能会保留其设置。如果你只是把它从 Drupal 下拉出来,它就不会那样了。 (2认同)
  • 步骤1:移动模块。步骤2:清除缓存。如果此时某个模块仍然损坏,则存在错误。 (2认同)