分支的代码
分支的代码
有很多方法来组织代码变更项目的工作流程。但工作直接在Git主分支和直接部署到生产没有测试可能不是最好的一个。
测试不仅仅是单元测试或功能测试,也是对检查与生产数据应用程序行为。如果你或你的利益相关者完全可以浏览应用程序,因为它将被部署到最终用户,这就变成了一个巨大的优势,让你自信地部署。尤其强大当非技术人员能够验证新功能。
我们将继续做所有的工作在Git主分支在接下来的步骤中为简单起见,避免重复自己,但让我们看看这个可以更好的工作。
采用一个Git工作流
一个可能的工作流程是每个新特性创建一个分支或错误修复。它是简单和有效的。
创建分支
工作流开始建立一个Git分支:
1
美元git分支- d sessions-in-db | |真正的
1
美元git checkout - b sessions-in-db
这个命令创建一个sessions-in-db
分支的主
分支。“叉”和基础设施配置的代码。
在数据库中存储会话
您可能已经猜到的分支的名字,我们需要切换会话存储从文件系统到数据库存储(我们这里的PostgreSQL数据库)。
所需的步骤,让它现实是典型:
- 创建一个Git分支;
- 如果需要更新Symfoob娱乐下载ny的配置;
- 如果需要编写一些代码和/或更新;
- 如果需要更新PHP配置(比如添加PostgreSQL PHP扩展);
- 码头工人,平台上更新基础设施。如果需要sh(添加PostgreSQL服务);
- 在本地测试;
- 远程测试;
- 合并分支掌握;
- 部署到生产;
- 删除分支。
在数据库中存储会话,改变session.handler_id
配置数据库DSN:
1 2 3 4 5 6 7 8 9 10 11
- - - / config /包/ framework.yaml+ + + b / config /包/ framework.yaml@@ 8 7 + 8 7 @@框架:#使会话的支持。注意,会议才会开始如果你读或写。#删除或注释本节明确禁用会话的支持。会话:- handler_id:零+ handler_id: ' % env(解决:DATABASE_URL) % 'cookie_secure:汽车cookie_samesite:宽松storage_factory_id: session.storage.factory.native
在数据库中存储会话,我们需要创建的会话
表。这样做迁移学说:
1
美元ob娱乐下载symfony控制台:迁移
编辑该文件添加的表创建()
方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
- - - /迁移/ Version00000000000000.php+ + + b /迁移/ Version00000000000000.php@@ -21年6 + 21日15 @@最终类Version00000000000000延伸AbstractMigration{/ /这个()迁移是自动生成的,请修改它来满足您的需求+ $ this - > addSql ('+创建表会话(+ sess_id VARCHAR (128) NOT NULL主键,+ sess_data BYTEA非空,+ sess_lifetime整数非空,+ sess_time整数NOT NULL+)+ ');+ $ this - > addSql(“会话(sess_lifetime)上创建索引失效”);}公共函数(模式美元):空白
迁移数据库:
1
美元ob娱乐下载symfony控制台学说:迁移:迁移
在本地测试通过浏览该网站。因为没有视觉变化,因为我们还没有使用会话,一切还是应该工作。
请注意
我们不需要步骤3到5是我们重用数据库会话存储,但章使用复述,显示是多么简单的添加、测试和部署新服务在码头工人和Platform.sh。
新表不是“管理”的原则,我们必须配置原则不移除它在未来数据库迁移:
1 2 3 4 5 6 7 8 9 10 11
- - - / config /包/ doctrine.yaml+ + + b / config /包/ doctrine.yaml@@ 5、6 + 5 8 @@学说:#重要:您必须配置您的服务器版本,#在这里或在DATABASE_URL env var(见.env文件)# server_version:“14”++ schema_filter: ~ ^ ~(? !会话)orm: auto_generate_proxy_classes:真正naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
对分公司提交您的更改:
1 2
美元git添加。美元git commit - m“配置数据库会话”
部署一个分支
在部署到生产环境之前,我们应该测试分支的基础设施生产。我们也应该验证Symfony,一切工作正常ob娱乐下载刺激
环境(本地网站使用Symfonyob娱乐下载dev
环境)。
现在,让我们创建一个平台。上海的环境基于Git分支:
1
美元ob娱乐下载syob直播appmfony云:env:删除sessions-in-db
1
美元ob娱乐下载syob直播appmfony云:部署
这个命令创建一个新的环境如下:
- 分支继承当前的Git分支的代码和基础设施(
sessions-in-db
); - 数据来自主人(即生产)环境通过一致的快照服务数据,包括文件(例如用户上传文件)和数据库;
- 创建一个新的专用集群部署代码,数据和基础设施。
部署遵循相同的步骤如部署到生产数据库迁移也将被执行。这是一个伟大的方式来验证与生产数据迁移工作。
非-主
环境非常相似主
一个除了一些微小的差异:例如,默认电子邮件没有发送。
一旦部署完成后,在浏览器中打开新的分支:
1
美元ob娱乐下载syob直播appmfony云:url 1
注意所有平台。sh命令在当前的Git分支。该命令打开URL的部署sessions-in-db
分支;URLhttps://sessions - - db - xxx.eu - 5. platformsh.site/
。
测试网站在这个新环境,你应该看到所有主环境中创建的数据。
如果你添加更多的会议上主
环境,他们不会出现在sessions-in-db
环境,反之亦然。环境是独立的和孤立的。
如果代码演化上的主人,你总是可以变基Git分支和部署更新后的版本,解决冲突的代码和基础设施。
你甚至可以从主回同步数据sessions-in-db
环境:
1
美元ob娱乐下载syob直播appmfony云:env:同步
在部署之前,调试生产部署
默认情况下,所有平台。上海的环境s use the same settings as the主
/刺激
环境(又名Symfonyob娱乐下载刺激
环境)。这允许您在现实条件下测试应用程序。它给你的感觉直接在生产服务器上开发和测试,但没有与之相关的风险。这让我想起了过去的好时光当我们部署通过FTP。
在出现问题时,你可能想切换到dev
ob娱乐下载Symfony环境:
1
美元ob娱乐下载syob直播appmfony云:env:调试
完成后,回到生产设置:
1
美元ob娱乐下载syob直播appmfony云:env:调试——了
警告
从来没有启用dev
环境和从未启用的Symfony分析器ob娱乐下载主
分支;这将使您的应用程序很慢和开放很多严重的安全漏洞。
合并生产
分支的变化感到满意时,合并的代码和基础设施回到Git主分支:
1 2
美元git checkout主美元git合并sessions-in-db
和部署:
1
美元ob娱乐下载syob直播appmfony云:部署
当部署,只有代码和基础设施更改推到Platform.sh;数据不受影响。