Skip to content
Snippets Groups Projects
Commit 1213ecb9 authored by kaiyou's avatar kaiyou
Browse files

Move to uuid for line index

parent c28ca71c
No related branches found
No related tags found
No related merge requests found
""" empty message
Revision ID: 3fe66efb6088
Revises:
Create Date: 2019-09-14 12:13:37.847931
"""
from alembic import op
import sqlalchemy as sa
revision = '3fe66efb6088'
down_revision = None
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('service',
sa.Column('protocol', sa.String(length=25), nullable=True),
sa.Column('name', sa.String(length=255), nullable=True),
sa.Column('description', sa.String(), nullable=True),
sa.Column('max_profiles', sa.Integer(), nullable=True),
sa.Column('config', sa.String(), nullable=True),
sa.Column('uuid', sa.String(length=36), nullable=False),
sa.Column('created_at', sa.Date(), nullable=False),
sa.Column('updated_at', sa.Date(), nullable=True),
sa.Column('comment', sa.String(length=255), nullable=True),
sa.PrimaryKeyConstraint('uuid')
)
op.create_table('user',
sa.Column('username', sa.String(length=255), nullable=False),
sa.Column('uuid', sa.String(length=36), nullable=False),
sa.Column('created_at', sa.Date(), nullable=False),
sa.Column('updated_at', sa.Date(), nullable=True),
sa.Column('comment', sa.String(length=255), nullable=True),
sa.PrimaryKeyConstraint('uuid'),
sa.UniqueConstraint('username')
)
op.create_table('auth',
sa.Column('user_uuid', sa.String(length=36), nullable=True),
sa.Column('value', sa.String(), nullable=True),
sa.Column('extra', sa.String(), nullable=True),
sa.Column('uuid', sa.String(length=36), nullable=False),
sa.Column('created_at', sa.Date(), nullable=False),
sa.Column('updated_at', sa.Date(), nullable=True),
sa.Column('comment', sa.String(length=255), nullable=True),
sa.ForeignKeyConstraint(['user_uuid'], ['user.uuid'], ),
sa.PrimaryKeyConstraint('uuid')
)
op.create_table('profile',
sa.Column('user_uuid', sa.String(length=36), nullable=True),
sa.Column('service_uuid', sa.String(length=36), nullable=True),
sa.Column('username', sa.String(length=255), nullable=False),
sa.Column('status', sa.String(length=25), nullable=False),
sa.Column('uuid', sa.String(length=36), nullable=False),
sa.Column('created_at', sa.Date(), nullable=False),
sa.Column('updated_at', sa.Date(), nullable=True),
sa.Column('comment', sa.String(length=255), nullable=True),
sa.ForeignKeyConstraint(['service_uuid'], ['service.uuid'], ),
sa.ForeignKeyConstraint(['user_uuid'], ['user.uuid'], ),
sa.PrimaryKeyConstraint('uuid')
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('profile')
op.drop_table('auth')
op.drop_table('user')
op.drop_table('service')
# ### end Alembic commands ###
""" Add a uuid per profile
Revision ID: 546912a5c987
Revises: a95b3a78f983
Create Date: 2019-09-12 22:32:19.352747
"""
from alembic import op
import sqlalchemy as sa
revision = '546912a5c987'
down_revision = 'a95b3a78f983'
branch_labels = None
depends_on = None
def upgrade():
with op.batch_alter_table('profile') as batch:
batch.add_column(sa.Column('uuid', sa.String(length=36)))
batch.create_unique_constraint('profile_unique', ['uuid'])
def downgrade():
with op.batch_alter_table('profile') as batch:
batch.drop_constraint('profile_unique', type_='unique')
batch.drop_column('uuid')
""" Create initial schemas
Revision ID: a95b3a78f983
Revises:
Create Date: 2019-09-10 21:33:43.332000
"""
from alembic import op
import sqlalchemy as sa
revision = 'a95b3a78f983'
down_revision = None
branch_labels = None
depends_on = None
def upgrade():
op.create_table('service',
sa.Column('spn', sa.String(length=255), nullable=True),
sa.Column('protocol', sa.String(length=25), nullable=True),
sa.Column('config', sa.String(), nullable=True),
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('created_at', sa.Date(), nullable=False),
sa.Column('updated_at', sa.Date(), nullable=True),
sa.Column('comment', sa.String(length=255), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('spn')
)
op.create_table('user',
sa.Column('username', sa.String(length=255), nullable=False),
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('created_at', sa.Date(), nullable=False),
sa.Column('updated_at', sa.Date(), nullable=True),
sa.Column('comment', sa.String(length=255), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('username')
)
op.create_table('auth',
sa.Column('user_id', sa.Integer(), nullable=True),
sa.Column('value', sa.String(), nullable=True),
sa.Column('extra', sa.String(), nullable=True),
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('created_at', sa.Date(), nullable=False),
sa.Column('updated_at', sa.Date(), nullable=True),
sa.Column('comment', sa.String(length=255), nullable=True),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('profile',
sa.Column('user_id', sa.Integer(), nullable=True),
sa.Column('service_id', sa.Integer(), nullable=True),
sa.Column('username', sa.String(length=255), nullable=False),
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('created_at', sa.Date(), nullable=False),
sa.Column('updated_at', sa.Date(), nullable=True),
sa.Column('comment', sa.String(length=255), nullable=True),
sa.ForeignKeyConstraint(['service_id'], ['service.id'], ),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ),
sa.PrimaryKeyConstraint('id')
)
def downgrade():
op.drop_table('profile')
op.drop_table('auth')
op.drop_table('user')
op.drop_table('service')
...@@ -20,8 +20,9 @@ class Base(flask_sqlalchemy.Model): ...@@ -20,8 +20,9 @@ class Base(flask_sqlalchemy.Model):
) )
@declarative.declared_attr @declarative.declared_attr
def id(cls): def uuid(cls):
return sqlalchemy.Column(sqlalchemy.Integer(), primary_key=True) return sqlalchemy.Column(sqlalchemy.String(36), primary_key=True,
default=lambda: str(uuid.uuid4()))
@declarative.declared_attr @declarative.declared_attr
def created_at(cls): def created_at(cls):
...@@ -88,7 +89,8 @@ class User(db.Model): ...@@ -88,7 +89,8 @@ class User(db.Model):
profile.service = service profile.service = service
profile.user = self profile.user = self
profile.username = self.username profile.username = self.username
profile.uuid = self.username profile.uuid = self.uuid
profile.status = Profile.ACTIVE
return profile return profile
...@@ -97,7 +99,7 @@ class Auth(db.Model): ...@@ -97,7 +99,7 @@ class Auth(db.Model):
""" """
__tablename__ = "auth" __tablename__ = "auth"
user_id = db.Column(db.Integer(), db.ForeignKey(User.id)) user_uuid = db.Column(db.String(36), db.ForeignKey(User.uuid))
user = db.relationship(User, user = db.relationship(User,
backref=db.backref('auths', cascade='all, delete-orphan')) backref=db.backref('auths', cascade='all, delete-orphan'))
# TODO: support multiple authentication realms, therefore more than # TODO: support multiple authentication realms, therefore more than
...@@ -117,8 +119,10 @@ class Service(db.Model): ...@@ -117,8 +119,10 @@ class Service(db.Model):
""" """
__tablename__ = "service" __tablename__ = "service"
spn = db.Column(db.String(255), unique=True)
protocol = db.Column(db.String(25)) protocol = db.Column(db.String(25))
name = db.Column(db.String(255))
description = db.Column(db.String())
max_profiles = db.Column(db.Integer())
config = db.Column(JSONEncoded) config = db.Column(JSONEncoded)
...@@ -127,15 +131,17 @@ class Profile(db.Model): ...@@ -127,15 +131,17 @@ class Profile(db.Model):
""" """
__tablename__ = "profile" __tablename__ = "profile"
user_id = db.Column(db.Integer(), db.ForeignKey(User.id)) ACTIVE = "active"
service_id = db.Column(db.Integer(), db.ForeignKey(Service.id))
user_uuid = db.Column(db.String(36), db.ForeignKey(User.uuid))
service_uuid = db.Column(db.String(36), db.ForeignKey(Service.uuid))
user = db.relationship(User, user = db.relationship(User,
backref=db.backref('profiles', cascade='all, delete-orphan')) backref=db.backref('profiles', cascade='all, delete-orphan'))
service = db.relationship(Service, service = db.relationship(Service,
backref=db.backref('profiles', cascade='all, delete-orphan')) backref=db.backref('profiles', cascade='all, delete-orphan'))
uuid = db.Column(db.String(36), unique=True, default=lambda: str(uuid.uuid4()))
username = db.Column(db.String(255), nullable=False) username = db.Column(db.String(255), nullable=False)
status = db.Column(db.String(25), nullable=False, default=ACTIVE)
@property @property
def email(self): def email(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment