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