Questions tagged «configuration-management»

7
settings.php的建议-本地开发人员,开发服务器,实时服务器
基本上,这是有史以来最大的问题之一:在开发/登台工作流程中使用settings.php有哪些方式? 现在,我已经按照如下所示设置了settings.php文件,并且我的开发基于服务器的$ HOST指令进行,这意味着我可以在dev.example.com上开发(共享)服务器local.example。 com(用于我的本地计算机)(以及其他开发人员的本地代码结帐),以及www.example.com(或仅用于example.com)用于实时站点。 (此代码位于settings.php的“数据库设置”部分中): $host = $_SERVER['HTTP_HOST']; $base_url = 'http://'.$host; $cookie_domain = $host; switch($host) { case 'example.com': # Production server $db_url = 'mysqli://prod_sql_user:password@127.0.0.1/prod_db'; $update_free_access = FALSE; $conf = array ( // Set production config options here... 'example_setting' => 0, ); break; case 'dev.example.com': # Development server $db_url = 'mysqli://dev_sql_user:password@127.0.0.1/dev_db'; …

6
如何在其他站点上导入配置?
当我尝试导入另一个站点的配置时出现此错误: 无法导入暂存的配置,因为它源自与该站点不同的站点。您只能在此站点的克隆实例之间同步配置。 我有10个客户,我需要将我的站点配置与10个不同的网站同步。 网站UUID是与其他网站共享配置的问题。有解决方案吗?

13
如何从活动配置中删除配置对象?
我正在为Drupal 8编写一个自定义模块。它在名为modules / mymod / config / install / field.storage.bloom_stem.bs_twitter_ac.yml的文件中定义了一个字段存储配置对象。 问题是,在卸载模块时不会将其删除。它显然被遗弃了,因为当我重新安装模块时,我崩溃了。 drush -y pm-uninstall mymod drush cr drush -y en mymod 异常'Drupal \ Core \ Config \ PreExistingConfigException'和消息'mymod提供的配置对象(field.storage.bloom_stem.bs_twitter_ac)已存在于活动配置中' 因此,似乎我需要一些手动删除此配置对象的方法。在卸载模块时,我是否还需要提供一些删除它的代码?

6
如何更新模块的配置?
我正在Drupal 8中构建一个自定义模块。它包含一些YAML配置文件。 在开发过程中,我需要更改并添加到配置中,例如,将另一个字段添加到我的自定义实体中。 目前,我发现让Drupal注意到更改的唯一方法是卸载模块并重新安装。 有没有办法让Drupal检查模块提供的配置文件是否与活动配置相同,如果不相同,则更新活动配置?如何处理模块更新?在D7 hook_update_N中将使用PHP添加字段,但是看起来这应该由D8中的CM处理吗? 更新模块中的yml文件后我尝试过的事情: drush cr,配置同步。 手动将所有更新的配置文件复制到sites/default/files/config_XXX/staging/-但这会出现此错误“无法导入暂存的配置,因为它源自与该站点不同的站点。您只能在此站点的克隆实例之间同步配置。” 。 使用配置管理器手动导入文件。这可行,但是显然必须有一种更自动的方法。 [EDIT]手动使用config_update模块检查更改并“还原”到模块的配置。同样,这是手动的。 编辑:从管理配置-做和不做 不要 尝试通过更改模块的config / install目录中的文件来更改站点上的活动配置。这将不起作用,因为Drupal仅在安装模块时从该目录读取。 ...但是将会发生变化,除非模块绑定到他们在第一个发行版本中所需的任何配置,并且可能永远不会更新或添加配置。 提前致谢。





7
从导入/导出中排除配置
我以为这是新的配置管理系统的简单用例,但是我没有运气找到解决方法: 问题 我想将配置存储在git中,并在开发过程中使用drush导出配置,然后在部署时导入配置。与在Drupal 7中还原功能非常相似。我的问题是,我不想在git中存储用于各种集成的访问代码。这导致这些配置在上被删除 $ drush cim -y 我看过的地方 我希望将有一个简单的配置列表/配置,在导入/导出时应排除在外。似乎有些时候,但是必须将其再次删除,因为它在当前的Drupal 8版本中可用。 我研究了如何对活动和同步存储进行比较来进行配置更改,以查看是否存在可以删除更改的地方,但事实并非如此。我查看了配置导入是如何进行的,因为它有一些配置排除了它本身,但是看起来好像不是可扩展的。我查看了ConfigEvents,但是这些似乎都是在导入后发生的,因此看起来无法使用。 我是否缺少某些东西,还是无法简单地从导入/导出中排除配置?

3
如何通过唯一的配置文件部署/管理类似的站点,而没有转储?
我不喜欢“ 克隆网站”解决方案,该解决方案意味着要转储数据库并将此转储导入另一个环境。这看起来并不像部署同一网站的多个实例(staging / prod / dev / etc)的真实方法。 对于D7,我们通常使用自定义配置文件,并使用drush从这些配置文件安装网站(并可能使用功能进行以后的网站同步)。这为我们提供了全新的安装,没有测试内容,但是共享了重要的设置。例如,公共内容同步将通过迁移完成。 我试图管理几个共享相同安装配置文件的D8实例。最终目标是共享和同步站点配置。而且每个安装都有一个不同的站点UUID。我system.site uuid在安装时强制执行config变量没有成功(当然,我以后可以更改该值,但是在我看来这已经太晚了,并且所有对象都已经使用不同的UUID创建,这使得第一次同步成为噩梦。,其中必须删除一些默认内容,或者由于无法删除同步,默认语言导致同步崩溃等)。 为了强制执行此UUID,我尝试使用生成的settings.php文件,该文件中包含一个$config['system.site']['uuid']值,但失败很大(即使在站点安装后,该设置也被完全忽略了)。 我还查看了我不完全了解的配置安装程序配置文件,尤其是将该解决方案与另一个安装配置文件混合使用的方式。 所以问题是,从安装配置文件部署新站点的最佳方法是什么: 无需“克隆网站”,也无需在创建网站时操纵SQL转储(例如,在“ 克隆网站问题”中)。 用新鲜干净的安装(没有开发内容垃圾),使用导出的配置和代码只 它可以管理安装配置默认值和以后的同步

2
Drupal 8中有哪些克隆站点?
尝试将我的站点配置从一个Drupal 8站点导出到另一个站点时,我不断收到以下错误 无法导入暂存的配置,因为它源自与该站点不同的站点。您只能在此站点的克隆实例之间同步配置。 那么在这种情况下,克隆站点是什么?如何覆盖此错误以导入配置?

2
导出内容类型的字段
Drupal 8的配置导出功能似乎是一个非常有用的功能。但是,我不确定我是否完全理解它是如何工作的。 例如,如果我执行单个导出,请选择“内容类型”,然后选择我的一种内容类型,我希望该导出包含该内容类型的完整描述。但是它不包含有关该内容类型中字段的任何信息。因此,如果您要导出内容类型配置以在另一个站点上使用,则似乎无法做到这一点。 我不确定如果不包含实体所需要的全部数据,那么我会被being用作单一出口。我想念什么吗?

4
导出菜单配置[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 8个月前关闭。 寻找一种导出菜单配置的方法。配置管理系统将导出菜单本身,但不导出菜单链接配置。我正在寻找一种方法来将这些大型菜单之一放入版本控制中,以通过多个环境导入/导出。 如果有人找到了执行此操作的好方法。我将不胜感激。

1
应该以什么顺序运行配置导入和模块更新?
由于模块的架构版本存储在键值存储中,因此它对于每个站点都是唯一的,并且不会通过配置管理进行同步。这是有道理的,因为更新可能需要进行未封装在配置中的调整(例如数据库更新),但是配置中可能还包含其他更改(例如,添加新的配置值)。 以任何顺序运行配置导入和数据库更新是否存在任何风险? 运行这些操作的首选顺序是什么? 更新挂钩是否需要对可能已经导入的配置项进行特殊调整? 完全更新生产环境是否需要其他操作?

2
Drupal主/从复制
我已经为drupal数据库设置了两个具有主/从复制功能的MySQL服务器,并且我已经确认数据库是同步和复制的。 我现在正试图将drupal指向这两个数据库,基本上是出于故障转移/冗余的目的。那就是如果我需要重启我们的主数据库服务器,我不希望我们的站点宕机。(在故障情况下可以接受只读) 根据以下文章。我修改settings.php如下: $databases['default']['default'] = array( 'driver' => 'mysql', 'database' => 'sdrupal', 'username' => 'drupal', 'password' => 'topsecret', 'host' => 'masterdb.ptp.local', ); $databases['default']['slave'][] = array( 'driver' => 'mysql', 'database' => 'sdrupal', 'username' => 'drupal', 'password' => 'topsecret', 'host' => 'slavedb.ptp.local', ); 在关闭主服务器(服务mysqld停止)之前,配置是正确的-当我这样做时,我的站点呕吐: PDOException:SQLSTATE [HY000] [2013]在“读取初始通信数据包”时与MySQL服务器的连接断开,系统错误:drupal_is_denied()中的111(/www/includes/bootstrap.inc的1895行)。额外 PDOException:SQLSTATE [HY000] [2013]在“读取初始通信数据包”时与MySQL服务器的连接断开,系统错误:dblog_watchdog()中的111(/www/modules/dblog/dblog.module的第141行)。 使这项工作有效的诀窍是什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.