From 667c88aa52160a57c5b4ace3481cac1cf3d43733 Mon Sep 17 00:00:00 2001
From: kaiyou <pierre@jaury.eu>
Date: Wed, 13 Nov 2019 17:55:44 +0100
Subject: [PATCH] Add a proper initial database creation script

---
 .../fa59f288c9f2_initial_database_creation.py | 100 ++++++++++++++++++
 1 file changed, 100 insertions(+)
 create mode 100644 migrations/versions/fa59f288c9f2_initial_database_creation.py

diff --git a/migrations/versions/fa59f288c9f2_initial_database_creation.py b/migrations/versions/fa59f288c9f2_initial_database_creation.py
new file mode 100644
index 00000000..5447507a
--- /dev/null
+++ b/migrations/versions/fa59f288c9f2_initial_database_creation.py
@@ -0,0 +1,100 @@
+""" Initial database creation
+
+Revision ID: fa59f288c9f2
+Revises: 
+Create Date: 2019-11-13 17:55:19.026431
+"""
+
+from alembic import op
+import sqlalchemy as sa
+import hiboo
+
+
+revision = 'fa59f288c9f2'
+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('provider', sa.String(length=255), nullable=True),
+    sa.Column('application', sa.String(length=255), nullable=True),
+    sa.Column('description', sa.String(), nullable=True),
+    sa.Column('policy', sa.String(length=255), nullable=True),
+    sa.Column('max_profiles', sa.Integer(), nullable=False),
+    sa.Column('same_username', sa.Boolean(), nullable=False),
+    sa.Column('config', hiboo.models.JSONEncoded(), nullable=True),
+    sa.Column('uuid', sa.String(length=36), nullable=False),
+    sa.Column('created_at', sa.DateTime(), nullable=False),
+    sa.Column('updated_at', sa.DateTime(), 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('is_admin', sa.Boolean(), nullable=False),
+    sa.Column('uuid', sa.String(length=36), nullable=False),
+    sa.Column('created_at', sa.DateTime(), nullable=False),
+    sa.Column('updated_at', sa.DateTime(), 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', hiboo.models.JSONEncoded(), nullable=True),
+    sa.Column('uuid', sa.String(length=36), nullable=False),
+    sa.Column('created_at', sa.DateTime(), nullable=False),
+    sa.Column('updated_at', sa.DateTime(), 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('extra', hiboo.models.JSONEncoded(), nullable=True),
+    sa.Column('uuid', sa.String(length=36), nullable=False),
+    sa.Column('created_at', sa.DateTime(), nullable=False),
+    sa.Column('updated_at', sa.DateTime(), 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')
+    )
+    op.create_table('history',
+    sa.Column('user_uuid', sa.String(length=36), nullable=True),
+    sa.Column('profile_uuid', sa.String(length=36), nullable=True),
+    sa.Column('service_uuid', sa.String(length=36), nullable=True),
+    sa.Column('actor_uuid', sa.String(length=36), nullable=True),
+    sa.Column('public', sa.Boolean(), nullable=True),
+    sa.Column('category', sa.String(length=25), nullable=True),
+    sa.Column('value', sa.String(), nullable=True),
+    sa.Column('uuid', sa.String(length=36), nullable=False),
+    sa.Column('created_at', sa.DateTime(), nullable=False),
+    sa.Column('updated_at', sa.DateTime(), nullable=True),
+    sa.Column('comment', sa.String(length=255), nullable=True),
+    sa.ForeignKeyConstraint(['actor_uuid'], ['user.uuid'], ),
+    sa.ForeignKeyConstraint(['profile_uuid'], ['profile.uuid'], ),
+    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('history')
+    op.drop_table('profile')
+    op.drop_table('auth')
+    op.drop_table('user')
+    op.drop_table('service')
+    # ### end Alembic commands ###
-- 
GitLab