added pillar structure to database
This commit is contained in:
parent
5393ea5669
commit
9d4123a734
@ -0,0 +1,68 @@
|
|||||||
|
"""added pillar structure
|
||||||
|
|
||||||
|
Revision ID: 678356102624
|
||||||
|
Revises: 4cc7f4e295f1
|
||||||
|
Create Date: 2025-12-27 19:58:09.382682
|
||||||
|
|
||||||
|
"""
|
||||||
|
from typing import Sequence, Union
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision: str = '678356102624'
|
||||||
|
down_revision: Union[str, Sequence[str], None] = '4cc7f4e295f1'
|
||||||
|
branch_labels: Union[str, Sequence[str], None] = None
|
||||||
|
depends_on: Union[str, Sequence[str], None] = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade() -> None:
|
||||||
|
"""Upgrade schema."""
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.create_table('pillar_tool_host_group',
|
||||||
|
sa.Column('id', sa.UUID(), nullable=False),
|
||||||
|
sa.Column('name', sa.String(), nullable=False),
|
||||||
|
sa.Column('parent_id', sa.UUID(), nullable=True),
|
||||||
|
sa.ForeignKeyConstraint(['parent_id'], ['pillar_tool_host_group.id'], ),
|
||||||
|
sa.PrimaryKeyConstraint('id'),
|
||||||
|
sa.UniqueConstraint('name', name='pillar_tool_host_group_unique_name')
|
||||||
|
)
|
||||||
|
op.create_table('pillar_tool_pillar',
|
||||||
|
sa.Column('id', sa.UUID(), nullable=False),
|
||||||
|
sa.Column('name', sa.String(), nullable=False),
|
||||||
|
sa.Column('parent_id', sa.UUID(), nullable=True),
|
||||||
|
sa.ForeignKeyConstraint(['parent_id'], ['pillar_tool_pillar.id'], ),
|
||||||
|
sa.PrimaryKeyConstraint('id')
|
||||||
|
)
|
||||||
|
op.create_table('pillar_tool_host',
|
||||||
|
sa.Column('id', sa.UUID(), nullable=False),
|
||||||
|
sa.Column('name', sa.String(), nullable=False),
|
||||||
|
sa.Column('host_group_id', sa.UUID(), nullable=True),
|
||||||
|
sa.ForeignKeyConstraint(['host_group_id'], ['pillar_tool_host_group.id'], ),
|
||||||
|
sa.PrimaryKeyConstraint('id'),
|
||||||
|
sa.UniqueConstraint('name', name='pillar_tool_host_unique_name')
|
||||||
|
)
|
||||||
|
op.create_table('pillar_tool_pillar_value',
|
||||||
|
sa.Column('pillar_id', sa.UUID(), nullable=False),
|
||||||
|
sa.Column('host_id', sa.UUID(), nullable=False),
|
||||||
|
sa.Column('host_group_id', sa.UUID(), nullable=False),
|
||||||
|
sa.Column('type', sa.String(), nullable=False),
|
||||||
|
sa.Column('value', sa.String(), nullable=False),
|
||||||
|
sa.ForeignKeyConstraint(['host_group_id'], ['pillar_tool_host_group.id'], ),
|
||||||
|
sa.ForeignKeyConstraint(['host_id'], ['pillar_tool_host.id'], ),
|
||||||
|
sa.ForeignKeyConstraint(['pillar_id'], ['pillar_tool_pillar.id'], ),
|
||||||
|
sa.PrimaryKeyConstraint('pillar_id', 'host_id', 'host_group_id')
|
||||||
|
)
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade() -> None:
|
||||||
|
"""Downgrade schema."""
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_table('pillar_tool_pillar_value')
|
||||||
|
op.drop_table('pillar_tool_host')
|
||||||
|
op.drop_table('pillar_tool_pillar')
|
||||||
|
op.drop_table('pillar_tool_host_group')
|
||||||
|
# ### end Alembic commands ###
|
||||||
@ -1 +1,2 @@
|
|||||||
from .user import *
|
from .user import *
|
||||||
|
from .pillar_data import *
|
||||||
43
pillar_tool/db/models/pillar_data.py
Normal file
43
pillar_tool/db/models/pillar_data.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
from pillar_tool.db.base_model import Base
|
||||||
|
|
||||||
|
from sqlalchemy import Column, UUID, String, ForeignKey, UniqueConstraint
|
||||||
|
|
||||||
|
|
||||||
|
class Pillar(Base):
|
||||||
|
__tablename__ = 'pillar_tool_pillar'
|
||||||
|
id = Column(UUID, primary_key=True)
|
||||||
|
name = Column(String, nullable=False)
|
||||||
|
parent_id = Column(UUID, ForeignKey('pillar_tool_pillar.id'), nullable=True)
|
||||||
|
|
||||||
|
|
||||||
|
class PillarValue(Base):
|
||||||
|
__tablename__ = 'pillar_tool_pillar_value'
|
||||||
|
pillar_id = Column(UUID, ForeignKey('pillar_tool_pillar.id'), primary_key=True)
|
||||||
|
host_id = Column(UUID, ForeignKey('pillar_tool_host.id'), primary_key=True)
|
||||||
|
host_group_id = Column(UUID, ForeignKey('pillar_tool_host_group.id'), primary_key=True)
|
||||||
|
type = Column(String, nullable=False)
|
||||||
|
value = Column(String, nullable=False)
|
||||||
|
|
||||||
|
|
||||||
|
class Host(Base):
|
||||||
|
__tablename__ = 'pillar_tool_host'
|
||||||
|
id = Column(UUID, primary_key=True)
|
||||||
|
name = Column(String, nullable=False)
|
||||||
|
host_group_id = Column(UUID, ForeignKey('pillar_tool_host_group.id'), nullable=True)
|
||||||
|
|
||||||
|
__table_args__ = (
|
||||||
|
UniqueConstraint('name', name='pillar_tool_host_unique_name'),
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class HostGroup(Base):
|
||||||
|
__tablename__ = 'pillar_tool_host_group'
|
||||||
|
id = Column(UUID, primary_key=True)
|
||||||
|
name = Column(String, nullable=False)
|
||||||
|
parent_id = Column(UUID, ForeignKey('pillar_tool_host_group.id'), nullable=True)
|
||||||
|
|
||||||
|
__table_args__ = (
|
||||||
|
UniqueConstraint('name', name='pillar_tool_host_group_unique_name'),
|
||||||
|
)
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user