Here is your SQL output, enum is created correctly: CREATE TYPE test_schema.enum1 AS ENUM ('One', 'Two')
however table does not refer to the correct enum: CREATE TABLE test_schema.table1 ( id SERIAL NOT NULL, type1 enum1, PRIMARY KEY (id) ) this is SQLAlchemy bug https://github.com/sqlalchemy/sqlalchemy/issues/5158 will be fixed in 1.3.14 On Mon, Feb 17, 2020, at 2:51 PM, Mike Bayer wrote: > mm nope we have plenty of tests for this here: > > https://github.com/sqlalchemy/sqlalchemy/blob/master/test/dialect/postgresql/test_compiler.py#L223 > > > > On Mon, Feb 17, 2020, at 2:49 PM, Mike Bayer wrote: >> it's possible also that PG Enum CREATE TYPE doesn't work with >> schema_translate_map, would need to evaluate that on the SQLAlchemy side. >> >> On Mon, Feb 17, 2020, at 2:45 PM, Mike Bayer wrote: >>> schema_translate_map is not yet supported with all Alembic ops: >>> >>> https://github.com/sqlalchemy/alembic/issues/555 >>> >>> you will need to fill in the "schema" parameter explicitly when you call >>> upon op.create_table() >>> >>> >>> >>> On Mon, Feb 17, 2020, at 12:47 PM, Brian Hill wrote: >>>> I'm having trouble using enums in conjunction with schema_translate_map >>>> for postgres migrations. >>>> >>>> My model, single table, single enum. >>>> >>>> import enum >>>> from sqlalchemy import MetaData, Enum, Column, Integer >>>> from sqlalchemy.ext.declarative import declarative_base >>>> >>>> >>>> metadata = MetaData() >>>> Base = declarative_base(metadata=metadata) >>>> >>>> >>>> >>>> >>>> class Enum1(enum.Enum): >>>> One = 1 >>>> Two = 2 >>>> >>>> >>>> >>>> >>>> class Table1(Base): >>>> __tablename__ = 'table1' >>>> id = Column(Integer, primary_key=True) >>>> type1 = Column(Enum(Enum1)) >>>> >>>> Version file. >>>> >>>> >>>> """initial revision >>>> >>>> >>>> Revision ID: 844dd0269c1b >>>> Revises: >>>> Create Date: 2020-02-17 12:23:31.125308 >>>> >>>> >>>> """ >>>> from alembic import op >>>> import sqlalchemy as sa >>>> >>>> >>>> >>>> >>>> # revision identifiers, used by Alembic. >>>> revision = '844dd0269c1b' >>>> down_revision = None >>>> branch_labels = None >>>> depends_on = None >>>> >>>> >>>> >>>> >>>> def upgrade(): >>>> # ### commands auto generated by Alembic - please adjust! ### >>>> op.create_table('table1', >>>> sa.Column('id', sa.Integer(), nullable=False), >>>> sa.Column('type1', sa.Enum('One', 'Two', name='enum1'), nullable=True), >>>> sa.PrimaryKeyConstraint('id') >>>> ) >>>> # ### end Alembic commands ### >>>> >>>> >>>> >>>> >>>> def downgrade(): >>>> # ### commands auto generated by Alembic - please adjust! ### >>>> op.drop_table('table1') >>>> # ### end Alembic commands ### >>>> >>>> >>>> Run migration funtion from env.py (creating foo schema): >>>> >>>> >>>> >>>> def run_migrations_online(): >>>> connectable = engine_from_config( >>>> config.get_section(config.config_ini_section), >>>> prefix="sqlalchemy.", >>>> poolclass=pool.NullPool, >>>> ) >>>> >>>> >>>> with connectable.connect() as connection: >>>> >>>> >>>> # use different schema >>>> connection.execute(f'create schema if not exists foo') >>>> connection = connection.execution_options( >>>> schema_translate_map={None: 'foo'} >>>> ) >>>> >>>> >>>> context.configure( >>>> connection=connection, >>>> target_metadata=target_metadata, >>>> include_schema=True, >>>> ) >>>> >>>> >>>> with context.begin_transaction(): >>>> context.run_migrations() >>>> >>>> >>>> I get the following error when i run *alembic upgrade head*: >>>> >>>> >>>> sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedObject) type >>>> "enum1" does not exist >>>> LINE 4: type1 enum1, >>>> ^ >>>> >>>> >>>> [SQL: >>>> CREATE TABLE foo.table1 ( >>>> id SERIAL NOT NULL, >>>> type1 enum1, >>>> PRIMARY KEY (id) >>>> ) >>>> >>>> >>>> ] >>>> (Background on this error at: http://sqlalche.me/e/f405) >>>> >>>> It works when I comment out schema_translate_map. >>>> >>>> I feel like I'm missing something fundamental about using >>>> schema_translate_map for multi-tenant/schema. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "sqlalchemy-alembic" group. >>>> To unsubscribe from this group and stop receiving emails from it, send an >>>> email to sqlalchemy-alembic+unsubscr...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/sqlalchemy-alembic/f8513719-4dd0-4bb2-b769-ff874e2017f2%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/sqlalchemy-alembic/f8513719-4dd0-4bb2-b769-ff874e2017f2%40googlegroups.com?utm_medium=email&utm_source=footer>. >>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "sqlalchemy-alembic" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to sqlalchemy-alembic+unsubscr...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/sqlalchemy-alembic/1ffea337-b61f-4712-9b90-c73056895e45%40www.fastmail.com >>> >>> <https://groups.google.com/d/msgid/sqlalchemy-alembic/1ffea337-b61f-4712-9b90-c73056895e45%40www.fastmail.com?utm_medium=email&utm_source=footer>. >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sqlalchemy-alembic" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sqlalchemy-alembic+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/sqlalchemy-alembic/078033be-3f96-4ebe-8be7-b23e3842c312%40www.fastmail.com >> >> <https://groups.google.com/d/msgid/sqlalchemy-alembic/078033be-3f96-4ebe-8be7-b23e3842c312%40www.fastmail.com?utm_medium=email&utm_source=footer>. > > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy-alembic" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sqlalchemy-alembic+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy-alembic/5be055e0-1c86-43d8-b879-45423c6641c5%40www.fastmail.com > > <https://groups.google.com/d/msgid/sqlalchemy-alembic/5be055e0-1c86-43d8-b879-45423c6641c5%40www.fastmail.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "sqlalchemy-alembic" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy-alembic+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy-alembic/9c4b6042-1c4e-453d-9838-d4f367bf55b2%40www.fastmail.com.