EXCEL中宏毒X97M.Laroux.DX1的解决办法-英雄云拓展知识分享
135
2023-11-07
【摘要】 本书摘自《Python+3自动化软件发布系统》一书中第4章,第6节,由陈刚、王洪军编著。
4.6 环境数据表
环境数据表位于 envx\modules.py 文件中。这个表是为了能让我们的软件自 动化平台支持不同的环境而创建的。比如,在一般的 IT 公司里,至少一个 App 应用 会有三套环境:程序员本地环境(我们不管理)、内网测试环境、公网生产环境。那么, 这里就会涉及到环境的信息了,如应用的发布单发布到哪个环境了,发布到哪个服务 器了。这些显示信息都是需要环境数据表来支撑的。
4.6.1 models.py 文件内容
这个env 的数据表字段很少,几乎标准的CommonInfo 类的字段就可以满足了。 为了将来扩展,以及可能不依赖于 ID, 我们新建了一个 eid 的保留字段。
envx\model s.py 的内容如下:
https://github.com/aguncn/manabe/blob/master/manabe/envx/models.py4.6.2 将环境数据表迁移进数据库
这个步骤的操作与上一小节应用数据表类似,操作的意义也相同,只需要按下面 步骤操作即可。
① 运行如下命令,将数据表变更反映到 migrations下的目录中。
python manage.py makemigrations evnx
注意,这次我们在命令最后加了 App 应用的名称。Django 的这次变更,就会只 扫描 envx 的变更。如果在其他 App 中有数据表的更改,则不会变更。这能让我们 更灵活地控制数据表的更改。输出如下:
Migrations for 'envx':
envx\migrations\0001_initial.py
-Create model Env
② 运行如下命令,将数据库的变更真正反映到数据库中。
python manage.py migrate envx
同样,我们在命令最后加了 App 应用的名称。Django 的这次变更只会让 envx 下的 Migrations 目录里的变化提交到数据表,而不会提交整个 Django 项目的所有 变化。输出如下:
Operations to perform:
Apply all migrations:envx
Running migrations:
Applying envx.0001_initial...OK
4.6.3 生成模拟数据
同4.6.2小节一样,我们需要为环境数据表生成模拟数据。有了上面的知识之后,操作就比较简单了。
① 在 public\management\commands 目录下,新增 fake_env.py 文件。内容
如下:
https://github.com/aguncn/manabe/blob/master/manabe/public/management/commands/fake_
env.py
我们假设了三个环境,DEV、TEST 及 PRD, 分别代表开发、测试及生产环境。
② 在 public\management\commands\fake_data.py 文件的合适位置,加入下面 几行:
https://github.com/aguncn/manabe/blob/master/manabe/public/management/commands/fake_
data.py
③ 运行 python manage.py fake_data,生成所有模拟数据。
④ 进入管理后台,查看数据生成情况,如图4-21所示。
4.7 服务器数据表
4.7.1 models.py 文件内容
Server 数据表位于 serverinput\modules.py 文件中,主要是用于管理公司的服 务器。公司的每一个服务器都对应于一条记录,它的字段包括了 IP、服务端口、Salt Minion的名称、所属环境等。文件内容如下:
https://github.com/aguncn/manabe/blob/master/manabe/serverinput/models.Py代码解释:
第13~14行:ip_address, 用于记录服务器的IP 地址。
第15~16行:salt_name, 用于定义这个服务器的 Salt Minion 的名称。因为不同的公司对于Salt Minion 的命名规范是不一样的,所以这里最好独立出来。
第17~18行:port 行,这个服务器上部署的 App 服务的端口号。
第19~22行:app_name, 这个服务器上的服务所对应的 App 的名称,是以外键 形式关联的。
第23~28行:env_name, 这个服务器所属的环境。至于环境的意义,我们会在 env 这个表里解释。它也是以外键形式关联的。
第29~32行:app_user, 服务的应用有可能是以 root 启动的,也可能不是,所以 独立出来。
第33~37行:op_user, 这里主要记录的是谁进行了这个 App 记录的操作(创建 和更新),便于做追溯操作。
第38~41行:history_deploy, 用于记录在此服务器上已部署过多少个发布单, 在历史记录和回滚时需要。
第42~45行:deploy_status, 用于记录发布服务时,是否每一步都执行完成。如果有错误,这里会记录错误,并在网页上反馈给用户。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。