2019-02-20

1 需求梳理
存放代码的仓库
应用app
部署环境
2 表设计

from django.db import models

# Create your models here.

class Record(models.Model):     ##记录上线日志,如果出现bug可以查看信息
    timestamp = models.CharField(max_length=64, blank=True, verbose_name="时间")
    project = models.ForeignKey(to="App", blank=True, null=True, verbose_name="应用", related_name="proj")
    package = models.ManyToManyField(to="Package", blank=True, null=True, verbose_name="代码", related_name="pack")
    env = models.ForeignKey(to="RecordEnv", blank=True, null=True, verbose_name="环境", related_name="env")
    def __str__(self):
        return self.timestamp
    class Meta:
        verbose_name_plural = "部署记录"


class App(models.Model):
    name = models.CharField(max_length=32, blank=True, null=True, verbose_name='应用名')
    path = models.CharField(max_length=64, blank=True, null=True, verbose_name='应用路径')
    environment = models.ForeignKey(to='RecordEnv', blank=True, null=True, verbose_name='环境')
    hosts = models.ManyToManyField(to='Host', blank=True, null=True, verbose_name='对应主机', related_name="apphost")
    # _script = models.CharField(max_length=32, blank=True, null=True, verbose_name='部署脚本')   ##单独一台主机去分发脚本
    package = models.ForeignKey(to='Package', blank=True, null=True, verbose_name='代码', related_name='apppack')
    _app = models.ForeignKey(to='App', blank=True, null=True, verbose_name='上级应用')      ##关联自己
    class Meta:
        verbose_name_plural = "项目表"


class RecordEnv(models.Model):
    name = models.CharField(max_length=64, blank=True, null=True, verbose_name="环境名")
    def __str__(self):
        return self.name
    class Meta:
        verbose_name_plural = "环境"


class Host(models.Model):
    hostname = models.CharField(max_length=32, blank=True, null=True, verbose_name="salt_id")
    ip = models.CharField(max_length=32, blank=True, null=True, verbose_name="IP")
    def __str__(self):
        return self.hostname
    class Meta:
        verbose_name_plural = "主机表"


class Package(models.Model):
    name = models.CharField(max_length=64, blank=True, null=True, verbose_name='包名/版本号/需求编号')
    pack_path = models.CharField(max_length=64, blank=True, null=True, verbose_name='代码的路径')
    def __str__(self):
        return self.name
    class Meta:
        verbose_name_plural = '代码'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值