On Tue, Feb 18, 2020, at 1:17 PM, Brian Hill wrote: > Is there a way to move the alembic_version table in the Public schema > (postgres) to a specific schema (mult-tenant) as part of a migration?
I highly doubt this is possible in the general case without the raw SQL in your env.py, because as the migration runs, the environment needs to update the table. if it moves schemas, then it won't be updating the correct table anymore. You would have to manipulate the internal state of the MigrationContext within the migration script so that this doesnt happen, however, the migration is also occurring inside of a transaction so it's very likely that you wouldn't actually be able to fully drop the old table in every case and there could be other side effects of this as well, and I cant guarantee this internal manipulation will always work for new Alembic releases. > > I want alembic to read the inital version from Public.alembic_version and > then write the new upgraded version to the specific schema.alembic_version. > > The only way I can get it to work is executing raw sql after the migration, > and this won't work for future migrations. > > with context.begin_transaction(): > context.run_migrations() > context.execute(f'alter table Public.alembic_version set schema {DB_SCHEMA}') I think what you can do here is check for alembic_version in the old schema and in the new one and then move the table after the migrations but only if it needs to be moved. Basically have the migrations always run with the schema whereever it is to start with, then move it after the fact. you'd have to detect which schema to use before you configure the context, however, since you need to pass it the schema for the alembic_version table. > > Do I have to flatten/rebase my versions after this? > > 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. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy-alembic/9ceb8556-e2c3-4631-84cf-8ba636c31a24%40googlegroups.com > > <https://groups.google.com/d/msgid/sqlalchemy-alembic/9ceb8556-e2c3-4631-84cf-8ba636c31a24%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/96a4236d-2f57-4291-9332-f9f02c88694b%40www.fastmail.com.