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.