唯一标识数据库中的主机以获取vCenter

时间:2017-08-17 12:12:22

标签: mysql sqlalchemy hypervisor

我希望使用vcenter名称和uuid的组合来唯一标识数据库中的主机。由于uuid可以在不同的vcenter中重复,因此当我查找组合vcenter_name + host_uuid是唯一的时,如何为主机表设计约束。

__tablename__ = 'host'

# key values
# pylint: disable=invalid-name
id = Column(Integer, primary_key=True)
hypervisor_type = Column(String, nullable=False)
uuid = Column(String, unique=True, nullable=False)
name = Column(String)
ip = Column(String)
fqdn = Column(String)

vcenter_id = Column(Integer, ForeignKey('vcenter.id', onupdate="CASCADE"))
vcenter = relationship('VcenterDBM', back_populates='hosts')

__table_args__ = (
        UniqueConstraint('uuid', 'vcenter_id', name='uniq_hosts'),
)

以上约束我没有让我在db的同一vcenter条目中添加多个主机。

0 个答案:

没有答案