without tutorial migrations generate flask sqlalchemy flask-sqlalchemy flask-migrate sqlalchemy-migrate

flask - tutorial - sqlalchemy postgresql enum no crea tipo en db migrate



flask sqlalchemy postgresql (1)

Decidí este problema usando eso.

Cambié el código de migración y la migración es así:

from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql def upgrade(): banner_status = postgresql.ENUM(''active'', ''inactive'', ''archive'', name=''banner_status'') banner_status.create(op.get_bind()) op.add_column(''banner'', sa.Column(''status'', sa.Enum(''active'', ''inactive'', ''archive'', name=''banner_status''), nullable=True)) def downgrade(): op.drop_column(''banner'', ''status'') banner_status = postgresql.ENUM(''active'', ''inactive'', ''archive'', name=''banner_status'') banner_status.drop(op.get_bind())

Y ahora python manage.py db upgrade/downgrade se ejecuta con éxito.

Desarrollo una aplicación web utilizando Flask en Python3. Tengo un problema con el tipo de enumeración postgresql en db migrate / upgrade.

Agregué una columna "estado" al modelo:

class Banner(db.Model): ... status = db.Column(db.Enum(''active'', ''inactive'', ''archive'', name=''banner_status'')) ...

La migración generada por python manage.py db migrate es:

from alembic import op import sqlalchemy as sa def upgrade(): op.add_column(''banner'', sa.Column(''status'', sa.Enum(''active'', ''inactive'', ''archive'', name=''banner_status''), nullable=True)) def downgrade(): op.drop_column(''banner'', ''status'')

Y cuando hago python manage.py db upgrade me python manage.py db upgrade un error:

... sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) type "banner_status" does not exist LINE 1: ALTER TABLE banner ADD COLUMN status banner_status [SQL: ''ALTER TABLE banner ADD COLUMN status banner_status'']

¿Por qué la migración no crea un tipo "banner_status"?

¿Qué estoy haciendo mal?

$ pip freeze alembic==0.8.6 Flask==0.10.1 Flask-Fixtures==0.3.3 Flask-Login==0.3.2 Flask-Migrate==1.8.0 Flask-Script==2.0.5 Flask-SQLAlchemy==2.1 itsdangerous==0.24 Jinja2==2.8 Mako==1.0.4 MarkupSafe==0.23 psycopg2==2.6.1 python-editor==1.0 requests==2.10.0 SQLAlchemy==1.0.13 Werkzeug==0.11.9