mirror of
https://github.com/simple-login/app.git
synced 2024-11-18 14:43:32 +08:00
173 lines
8.2 KiB
Python
173 lines
8.2 KiB
Python
|
"""empty message
|
||
|
|
||
|
Revision ID: 5e549314e1e2
|
||
|
Revises:
|
||
|
Create Date: 2019-06-23 16:02:14.692075
|
||
|
|
||
|
"""
|
||
|
import sqlalchemy_utils
|
||
|
from alembic import op
|
||
|
import sqlalchemy as sa
|
||
|
|
||
|
|
||
|
# revision identifiers, used by Alembic.
|
||
|
from sqlalchemy.dialects.postgresql import ENUM
|
||
|
|
||
|
revision = '5e549314e1e2'
|
||
|
down_revision = None
|
||
|
branch_labels = None
|
||
|
depends_on = None
|
||
|
|
||
|
|
||
|
def upgrade():
|
||
|
# alembic cannot handle enum for now
|
||
|
enum = ENUM("free", "trial", "monthly", "yearly", name="plan_enum", create_type=False)
|
||
|
enum.create(op.get_bind(), checkfirst=False)
|
||
|
|
||
|
|
||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||
|
op.create_table('file',
|
||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||
|
sa.Column('created_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||
|
sa.Column('updated_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||
|
sa.Column('path', sa.String(length=128), nullable=False),
|
||
|
sa.PrimaryKeyConstraint('id'),
|
||
|
sa.UniqueConstraint('path')
|
||
|
)
|
||
|
op.create_table('scope',
|
||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||
|
sa.Column('created_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||
|
sa.Column('updated_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||
|
sa.Column('name', sa.String(length=128), nullable=False),
|
||
|
sa.PrimaryKeyConstraint('id'),
|
||
|
sa.UniqueConstraint('name')
|
||
|
)
|
||
|
op.create_table('users',
|
||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||
|
sa.Column('created_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||
|
sa.Column('updated_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||
|
sa.Column('email', sa.String(length=128), nullable=False),
|
||
|
sa.Column('salt', sa.String(length=128), nullable=False),
|
||
|
sa.Column('password', sa.String(length=128), nullable=False),
|
||
|
sa.Column('name', sa.String(length=128), nullable=False),
|
||
|
sa.Column('is_admin', sa.Boolean(), nullable=False),
|
||
|
sa.Column('activated', sa.Boolean(), nullable=False),
|
||
|
sa.Column('plan', enum, server_default='free', nullable=False),
|
||
|
sa.Column('trial_expiration', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||
|
sa.Column('stripe_customer_id', sa.String(length=128), nullable=True),
|
||
|
sa.Column('stripe_card_token', sa.String(length=128), nullable=True),
|
||
|
sa.Column('stripe_subscription_id', sa.String(length=128), nullable=True),
|
||
|
sa.PrimaryKeyConstraint('id'),
|
||
|
sa.UniqueConstraint('email'),
|
||
|
sa.UniqueConstraint('stripe_card_token'),
|
||
|
sa.UniqueConstraint('stripe_customer_id'),
|
||
|
sa.UniqueConstraint('stripe_subscription_id')
|
||
|
)
|
||
|
op.create_table('activation_code',
|
||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||
|
sa.Column('created_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||
|
sa.Column('updated_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||
|
sa.Column('user_id', sa.Integer(), nullable=False),
|
||
|
sa.Column('code', sa.String(length=128), nullable=False),
|
||
|
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ondelete='cascade'),
|
||
|
sa.PrimaryKeyConstraint('id'),
|
||
|
sa.UniqueConstraint('code')
|
||
|
)
|
||
|
op.create_table('client',
|
||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||
|
sa.Column('created_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||
|
sa.Column('updated_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||
|
sa.Column('oauth_client_id', sa.String(length=128), nullable=False),
|
||
|
sa.Column('oauth_client_secret', sa.String(length=128), nullable=False),
|
||
|
sa.Column('name', sa.String(length=128), nullable=False),
|
||
|
sa.Column('home_url', sa.String(length=1024), nullable=True),
|
||
|
sa.Column('published', sa.Boolean(), nullable=False),
|
||
|
sa.Column('user_id', sa.Integer(), nullable=False),
|
||
|
sa.Column('icon_id', sa.Integer(), nullable=True),
|
||
|
sa.ForeignKeyConstraint(['icon_id'], ['file.id'], ),
|
||
|
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ondelete='cascade'),
|
||
|
sa.PrimaryKeyConstraint('id'),
|
||
|
sa.UniqueConstraint('oauth_client_id')
|
||
|
)
|
||
|
op.create_table('gen_email',
|
||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||
|
sa.Column('created_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||
|
sa.Column('updated_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||
|
sa.Column('user_id', sa.Integer(), nullable=False),
|
||
|
sa.Column('email', sa.String(length=128), nullable=False),
|
||
|
sa.Column('enabled', sa.Boolean(), nullable=False),
|
||
|
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ondelete='cascade'),
|
||
|
sa.PrimaryKeyConstraint('id'),
|
||
|
sa.UniqueConstraint('email')
|
||
|
)
|
||
|
op.create_table('authorization_code',
|
||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||
|
sa.Column('created_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||
|
sa.Column('updated_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||
|
sa.Column('code', sa.String(length=128), nullable=False),
|
||
|
sa.Column('client_id', sa.Integer(), nullable=False),
|
||
|
sa.Column('user_id', sa.Integer(), nullable=False),
|
||
|
sa.ForeignKeyConstraint(['client_id'], ['client.id'], ondelete='cascade'),
|
||
|
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ondelete='cascade'),
|
||
|
sa.PrimaryKeyConstraint('id'),
|
||
|
sa.UniqueConstraint('code')
|
||
|
)
|
||
|
op.create_table('client_scope',
|
||
|
sa.Column('client_id', sa.Integer(), nullable=False),
|
||
|
sa.Column('scope_id', sa.Integer(), nullable=False),
|
||
|
sa.ForeignKeyConstraint(['client_id'], ['client.id'], ondelete='cascade'),
|
||
|
sa.ForeignKeyConstraint(['scope_id'], ['scope.id'], ondelete='cascade'),
|
||
|
sa.PrimaryKeyConstraint('client_id', 'scope_id')
|
||
|
)
|
||
|
op.create_table('client_user',
|
||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||
|
sa.Column('created_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||
|
sa.Column('updated_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||
|
sa.Column('user_id', sa.Integer(), nullable=False),
|
||
|
sa.Column('client_id', sa.Integer(), nullable=False),
|
||
|
sa.Column('gen_email_id', sa.Integer(), nullable=True),
|
||
|
sa.ForeignKeyConstraint(['client_id'], ['client.id'], ondelete='cascade'),
|
||
|
sa.ForeignKeyConstraint(['gen_email_id'], ['gen_email.id'], ondelete='cascade'),
|
||
|
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ondelete='cascade'),
|
||
|
sa.PrimaryKeyConstraint('id'),
|
||
|
sa.UniqueConstraint('user_id', 'client_id', name='uq_client_user')
|
||
|
)
|
||
|
op.create_table('oauth_token',
|
||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||
|
sa.Column('created_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||
|
sa.Column('updated_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||
|
sa.Column('access_token', sa.String(length=128), nullable=True),
|
||
|
sa.Column('client_id', sa.Integer(), nullable=False),
|
||
|
sa.Column('user_id', sa.Integer(), nullable=False),
|
||
|
sa.ForeignKeyConstraint(['client_id'], ['client.id'], ondelete='cascade'),
|
||
|
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ondelete='cascade'),
|
||
|
sa.PrimaryKeyConstraint('id'),
|
||
|
sa.UniqueConstraint('access_token')
|
||
|
)
|
||
|
op.create_table('redirect_uri',
|
||
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
||
|
sa.Column('created_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=False),
|
||
|
sa.Column('updated_at', sqlalchemy_utils.types.arrow.ArrowType(), nullable=True),
|
||
|
sa.Column('client_id', sa.Integer(), nullable=False),
|
||
|
sa.Column('uri', sa.String(length=1024), nullable=False),
|
||
|
sa.ForeignKeyConstraint(['client_id'], ['client.id'], ondelete='cascade'),
|
||
|
sa.PrimaryKeyConstraint('id')
|
||
|
)
|
||
|
# ### end Alembic commands ###
|
||
|
|
||
|
|
||
|
def downgrade():
|
||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||
|
op.drop_table('redirect_uri')
|
||
|
op.drop_table('oauth_token')
|
||
|
op.drop_table('client_user')
|
||
|
op.drop_table('client_scope')
|
||
|
op.drop_table('authorization_code')
|
||
|
op.drop_table('gen_email')
|
||
|
op.drop_table('client')
|
||
|
op.drop_table('activation_code')
|
||
|
op.drop_table('users')
|
||
|
op.drop_table('scope')
|
||
|
op.drop_table('file')
|
||
|
# ### end Alembic commands ###
|