还在为如何将本地的开发工作如何部署到生产环境而皱眉头?本文以实战历程教你如何一步步将你的工作成果从开发环境部署到生产环境。

如题所示,需要用到Features, Git, Drush;如果你还不知道他们是神马?自行补脑。 
如果你理解并会用features,用过Drush,知道Git是干什么的,请继续阅读。否则自己看着办:)

这里演示如何将自己开发环境做好的一个slideshow,从开发环境部署到生产环境并启用。 
假设你的项目代码已经使用git进行版本控制,并在开发环境与生产环境都是通过git clone方式获取代码。 
在开发环境中制作一个slideshow,方案如下:

建立一个新的内容类型叫做slideshow,并添加相关的图片字段,连接字段,介绍字段等。同时启用模块views slideshow并做好相关配置然后保存。 
将以上做好的配置导出为一个features,features里面应该包含内容类型slideshow及views的相关配置;命名为:home_slideshow,解压features放到目录sites/all/modules/custom/features下面。

在开发环境命令行方式下,执行如下命令:

cd sites/all/modules/custom/features 
git add home_slideshow 
git commit -m “add features:home_slideshow.” 
git push origin master

然后到生产环境命令行方式下,执行如下命令:

git pull origin master 
drush en home_slideshow -y

到这里,关于slideshow的开发工作已经从本地转移到生产环境并启用。手工进行少量配置即可使之工作。

下面介绍一些进阶用法与命令。 
场景: 
slideshow的views做了点修改。比如slideshow的排序方式从发布日期降序排列改为更新日期降序排列,如何做?如果没有这里的工作流,相信大多数人会直接在生产环境修改views配置。但是这不是常规的工作流程,下面介绍正确的工作流程。 
1:在本地修改好views配置,测试完毕后,执行如下命令:

cd sites/all/modules/custom/features 
drush fu home_slideshow 
git add ./* 
git commit -m “修改slideshow排序方式” 
git push origin master

2:到生产环境执行如下命令:

git pull origin master 
drush fr home_slideshow -y 
drush cc all //这里看起来没必要执行清空缓存的操作,但是如果能保持这一好习惯,可以让你在开发过程中省心不少哦。

到此,你对views相关的更改已经从开发环境部署到生产环境。额外附赠如下礼品:

drush fu == drush features-update 
drush fr == drush features-revert

features对drush已经有良好的支持。

需要指出的是,刚开始使用上述方案进行Drupal的开发与部署,可能会感觉浪费时间。但是如果你是在一个团队中工作的话,上述流程几乎是一个标准流程。同时你的工作成果都通过代码方式展现出来,利于项目控制与风险把控。如果这一流程执行的比较理想,在admin/structure/features下面看到所有的features都应该是”default”状态。

http://www.dplor.com/archives/546?utm_source=tuicool&utm_medium=referral

DrupalCon New Orleans 2016: Configuration Management, Composer, Git and Drush in Drupal 8

https://www.youtube.com/watch?v=1bxQJtiHy4k

Features + Git + Drush,打造你的Drupal开发与维护标准工作流的更多相关文章

  1. Vagrant - 打造跨平台的一致开发环境

    官网 参考资料 借助 Vagrant ,可以使用 Vagrantfile 文件自动化虚拟机的安装和配置流程,方便快速的打造跨平台的统一开发环境. 1. Vagrant 是啥 Vagrant 用于构建及 ...

  2. Git详细教程---多人协作开发

    Git可以完成两件事情: 1. 版本控制 2.多人协作开发 如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发. 如果有多个开发人员共同开发一个项目,如何进行协作的呢. Git提供了一个非 ...

  3. git clone开启云上AI开发

    摘要:相比于传统的软件开发,AI开发存在以下4个痛点:算法繁多:训练时间长:算力需求大:模型需手动管理,我们可以使用云上AI开发的方式来缓解以上4个痛点. 本文分享自华为云社区<git clon ...

  4. Android NDK开发及调用标准linux动态库.so文件

    源:Android NDK开发及调用标准linux动态库.so文件 预备知识及环境搭建 1.NDK(native development Kit)原生开发工具包,用来快速开发C.C++动态库,并能自动 ...

  5. nodejs选择JavaScript作为开发语言,是因为一般的开发语言的标准库都是带有IO模块的,并且通常这个 模块是阻塞性的,所以nodejs选择了没有自带IO模块的Javascript

    Javascrip本身不带IO功能,nodejs选择JavaScript作为开发语言,是因为一般的开发语言的标准库都是带有IO模块的,并且通常这个 模块是阻塞性的,所以nodejs选择了没有自带IO模 ...

  6. 如何比较Keras, TensorLayer, TFLearn ?——如果只是想玩玩深度学习,想快速上手 -- Keras 如果工作中需要解决内部问题,想快速见效果 -- TFLearn 或者 Tensorlayer 如果正式发布的产品和业务,自己设计网络模型,需要持续开发和维护 -- Tensorlayer

    转自:https://www.zhihu.com/question/50030898/answer/235137938 如何比较Keras, TensorLayer, TFLearn ? 这三个库主要 ...

  7. SCRUM 是一个用于开发和维护复杂产品的框架

    转自:http://www.scrumcn.com/agile/scrum-knowledge-library/scrum.html#tab-id-1 Scrum 是一个用于开发和维护复杂产品的框架 ...

  8. Drupal 开发必备利器

    http://drupalchina.cn/node/3436 转自 测试模块.主题.发行版的网站: http://simplytest.me/ Drupal API: https://api.dru ...

  9. 利用 WSL 在 Windows下打造高效的 Linux 开发环境

    WSL-Windows Subsystem for Linux 介绍 The Windows Subsystem for Linux lets developers run Linux environ ...

随机推荐

  1. Ajax 滚动异步加载数据

    第一种情况:单个div滚动 HTML <body> <!-- search start --> <div class="search" #if($m_ ...

  2. BootStrap学习之栅格布局

    Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的改变,系统会自动分为最多12列.它包含了易于使用的预定义类,还有强大的mixin用于生成更具语 ...

  3. Vue -- vue-cli(vue脚手架) npm run build打包优化

    这段时间公司新项目立项,开发组选用 Vue2.0 进行开发.当然也就一并用到 vue cli 进行自动化构建.结果在基础版本开发完成后,用 npm run build 命令打包上线时,发现以下几个问题 ...

  4. [Android] 旋转照片/图片

    今天比较闲(是任务做完了,不是偷懒),就多更新几篇,补一下之前做的东西. 原文地址请保留http://www.cnblogs.com/rossoneri/p/3995306.html 推荐阅读: An ...

  5. SpringMVC在Controller层中注入request的坑

    记一次为了节省代码没有在方法体中声明HttpServletRequest,而用autowire直接注入所钻的坑 结论 给心急的人. 直接在Controller的成员变量上使用@Autowire声明Ht ...

  6. 使用 Roslyn引擎动态编译代码

    Roslyn引擎自2014年开源至今这么久,一直没怎么了解过,虽然VS2015早就集成了它. 以前老一套的动态编译方法在 .NET Core中似乎不再支持了,很多方法都是未实现的.下面就介绍如何在.N ...

  7. 【转】Mysql学习---SQL的优化

    [原文]https://www.toutiao.com/i6594314336913588743/ mysql如何处理亿级数据,第一个阶段--优化SQL语句 1.应尽量避免在 where 子句中使用! ...

  8. ORACLE 查看并修改最大连接数

    第一步,在cmd命令行,输入sqlplus,打开登录窗口,如下: 第二步,根据提示输入用户名与密码 请输入用户名:sys as sysdba 输入口令:******** 第三步,查看processes ...

  9. python + pyqt5 QlineEdit QMessageBox实现信息录入和消息弹框提醒

    本人现在在做自动化工具开发的工作,因此,记录下自己平时遇到的问题和解决之道,还有一些简单的小工具 以下为主代码 # --*-- coding:utf-8 --*-- from first import ...

  10. 第 14 章 结构和其他数据形式(names3)

    /*----------------------------------- names3.c -- 使用指针和 malloc() ----------------------------------- ...