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

如题所示,需要用到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. PDO中的预处理

    PDO中的基本的原理和步骤和MySQL中的预处理都是一样的,只不过就是把MySQL中的预处理所有命令行的语法封装成了PDO对象的几个公开的方法而已! 1.发送预处理语句 此时,我们需要调用pdo对象的 ...

  2. CF712E Memory and Casinos

    设\(f[i]\)为从\(i\)到\(r+1\)且不走出区间的概率 \(f[i]=p[i]f[i+1]+(1-p[i])f[i-1]\) \(f[i]-f[i-1]=p[i](f[i+1]-f[i-1 ...

  3. 一台电脑配置多个tomcat过程

    方法1:https://jingyan.baidu.com/article/76a7e409edbb4dfc3b6e1516.html 方法2:https://www.cnblogs.com/yiyi ...

  4. input框中自动展示当前日期 yyyy/mm/dd

    直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  5. MySQL数据库图文安装详解及相关问题

    (尊重劳动成果,转载请注明出处: http://blog.csdn.net/qq_25827845/article/details/53366444冷血之心的博客) 首先说明:安装目录中不能有中文和空 ...

  6. 标准工作流(AWE)邮件通知

    今天遇到一个问题,UAT环境收不到流程待办,最终审批,最终拒绝等邮件. 检查了PT_WF_NOTIFICATION包的Notification类中的Send方法,发现如果app服务器在psappsrv ...

  7. 单元测试(一)-NUnit基础

    单元测试作为提高代码和软件质量的有效途径,其重要性和益处自不必多说,虽然我没有实践过TDD之类,但坚信单元测试的积极作用.作为一种开发方法,单元测试早在上世纪70年代就已经在Smalltalk语言被运 ...

  8. Android Application中的Context和Activity中的Context的异同

    一.Context是什么: 1.Context是维持Android程序中各组件能够正常工作的一个核心功能类,我们选中Context类 ,按下快捷键F4,右边就会出现一个Context类的继承结构图啦, ...

  9. LeetCode题解之Convert BST to Greater Tree

    1.题目描述 2.问题分析 使用一个vector将所有节点的值以升序排列.然后比较,求和,加上. 3.代码 TreeNode* convertBST(TreeNode* root) { if (roo ...

  10. 学习dbms_parallel_execute包

    一.简介 ORACLE11g R2版本的新特性之一就是引进了DBMS_PARALLEL_EXECUTE包,使用DBMS_PARALLEL_EXECUTE包批量并行递增式的更新表. 更多ORACLE11 ...