Here's my env.py. Thanks for the help. Brian On Thursday, March 19, 2020 at 5:37:38 PM UTC-4, Mike Bayer wrote: > > > > On Thu, Mar 19, 2020, at 5:30 PM, Brian Hill wrote: > > Are there known issues with using autogenerate with multi-tenant > (schema_translate_map)? > > > it's complicated and not one-size-fits-all, if you consider that to be an > issue > > > > My metadata doesn't have a schema and I my > schema_translate_map={None:'my_schema'}. > > This works for migrations but when I use autogenerate the generated > revision file is the full schema and not the diff. > > It's detecting the alembic version table in the tenant schema. If I run > the autogenerate a second time with the new revision file it fails saying > Taget database is not up to date. > > > are you setting include_schemas=True in your environment? I'd probably > not do this. Can't help much more without a complete and concise working > example of your env.py, please remove all extraneous details. > > > > Thanks, > > Brian > > > -- > 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 <javascript:>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy-alembic/5011240c-ba09-4423-9a05-0e6d2481dadf%40googlegroups.com > > <https://groups.google.com/d/msgid/sqlalchemy-alembic/5011240c-ba09-4423-9a05-0e6d2481dadf%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/fe6fddb4-25d6-4dd1-be3a-c1a174548bb4%40googlegroups.com.
import os from alembic import context from sqlalchemy import engine_from_config, pool # add parent/parent to path so we can import metadata dir_path = os.path.dirname(os.path.realpath(__file__)) repo_path = os.path.dirname(dir_path) os.sys.path.append(repo_path) # required import when autogenerating revisions at the command line: from yms_db.db.db_schema import metadata # this is the Alembic Config object, which provides # access to the values within the .ini file in use. config = context.config # get db envs and set config sqlalchemy.url DB_SCHEMA = os.environ['DB_SCHEMA'] PG_URL = 'postgresql://{DB_USER}:{DB_PASS}@{DB_HOST}/{DB_NAME}'.format(**os.environ) config.set_main_option('sqlalchemy.url', PG_URL) def run_migrations_offline(): """Run migrations in 'offline' mode.""" url = config.get_main_option("sqlalchemy.url") context.configure( url=url, target_metadata=metadata, literal_binds=True) with context.begin_transaction(): context.run_migrations() def run_migrations_online(): """Run migrations in 'online' mode.""" connectable = engine_from_config( config.get_section(config.config_ini_section), prefix='sqlalchemy.', poolclass=pool.NullPool) with connectable.connect() as connection: # create DB_SCHEMA if it doesn't exist connection.execute(f'create schema if not exists {DB_SCHEMA}') # map metadata schema (None) to DB_SCHEMA connection = connection.execution_options(schema_translate_map={None:DB_SCHEMA}) # set alembic version table location in DB_SCHEMA context.configure( connection=connection, target_metadata=metadata, version_table_schema=DB_SCHEMA, ) with context.begin_transaction(): context.run_migrations() if context.is_offline_mode(): run_migrations_offline() else: run_migrations_online()