Merged with dev and fixed conflicts
This commit is contained in:
44
fittrackee/migrations/commands.py
Normal file
44
fittrackee/migrations/commands.py
Normal file
@ -0,0 +1,44 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
import click
|
||||
from flask_migrate import upgrade
|
||||
|
||||
from fittrackee import db
|
||||
from fittrackee.cli.app import app
|
||||
|
||||
BASEDIR = os.path.abspath(os.path.dirname(__file__))
|
||||
app_settings = os.getenv('APP_SETTINGS', 'fittrackee.config.ProductionConfig')
|
||||
|
||||
|
||||
@click.group(name='db')
|
||||
def db_cli() -> None:
|
||||
"""Manage database."""
|
||||
pass
|
||||
|
||||
|
||||
@db_cli.command('upgrade')
|
||||
def upgrade_db() -> None:
|
||||
"""Apply migrations."""
|
||||
with app.app_context():
|
||||
upgrade(directory=BASEDIR)
|
||||
|
||||
|
||||
@db_cli.command('drop')
|
||||
def drop_db() -> None:
|
||||
"""Empty database and delete uploaded files for dev environments."""
|
||||
with app.app_context():
|
||||
if app_settings == 'fittrackee.config.ProductionConfig':
|
||||
click.echo(
|
||||
click.style(
|
||||
'This is a production server, aborting!', bold=True
|
||||
),
|
||||
err=True,
|
||||
)
|
||||
return
|
||||
db.engine.execute("DROP TABLE IF EXISTS alembic_version;")
|
||||
db.drop_all()
|
||||
db.session.commit()
|
||||
click.echo('Database dropped.')
|
||||
shutil.rmtree(app.config['UPLOAD_FOLDER'], ignore_errors=True)
|
||||
click.echo('Uploaded files deleted.')
|
@ -0,0 +1,59 @@
|
||||
"""update User and AppConfig tables
|
||||
|
||||
Revision ID: 5e3a3a31c432
|
||||
Revises: e30007d681cb
|
||||
Create Date: 2022-02-23 11:05:24.223304
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '5e3a3a31c432'
|
||||
down_revision = 'e30007d681cb'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.alter_column(
|
||||
'users', 'username', existing_type=sa.String(length=20),
|
||||
type_=sa.String(length=255), existing_nullable=False
|
||||
)
|
||||
op.alter_column(
|
||||
'users', 'email', existing_type=sa.String(length=120),
|
||||
type_=sa.String(length=255), existing_nullable=False
|
||||
)
|
||||
op.add_column(
|
||||
'users',
|
||||
sa.Column('is_active', sa.Boolean(), default=False, nullable=True))
|
||||
op.execute("UPDATE users SET is_active = true")
|
||||
op.alter_column('users', 'is_active', nullable=False)
|
||||
op.add_column(
|
||||
'users',
|
||||
sa.Column('email_to_confirm', sa.String(length=255), nullable=True))
|
||||
op.add_column(
|
||||
'users',
|
||||
sa.Column('confirmation_token', sa.String(length=255), nullable=True))
|
||||
|
||||
op.add_column(
|
||||
'app_config',
|
||||
sa.Column('admin_contact', sa.String(length=255), nullable=True)
|
||||
)
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_column('app_config', 'admin_contact')
|
||||
|
||||
op.drop_column('users', 'confirmation_token')
|
||||
op.drop_column('users', 'email_to_confirm')
|
||||
op.drop_column('users', 'is_active')
|
||||
op.alter_column(
|
||||
'users', 'email', existing_type=sa.String(length=255),
|
||||
type_=sa.String(length=120), existing_nullable=False
|
||||
)
|
||||
op.alter_column(
|
||||
'users', 'username', existing_type=sa.String(length=255),
|
||||
type_=sa.String(length=20), existing_nullable=False
|
||||
)
|
Reference in New Issue
Block a user