I have a library that\'s part of a bigger project. The library uses its own schema in a (PostgreSQL) database shared with the larger project.
I want to use ale
Based on Oin response, finally a method which ignores tables while running db revision --autogenerate
In alembic/env.py or migrations/env.py:
def include_object(object, name, type_, reflected, compare_to):
if (type_ == "table" and object.schema == "exclude_from_migrations"):
return False
else:
return True
In alembic/env.py or migrations/env.py:
def run_migrations_online():
....
context.configure(connection=connection,
target_metadata=target_metadata,
include_object = include_object,
process_revision_directives=process_revision_directives,
**current_app.extensions['migrate'].configure_args)
...
Now in the tables that you want to ignore:
class MyClass(db.Model):
__tablename__='my_class'
__table_args__ = {"schema": "exclude_from_migrations"}
It seems I can use include_object
in conjunction with include_schemas
In alembic/env.py
:
def include_object(object, name, type_, reflected, compare_to):
if type_ == 'table' and object.schema != MY_SCHEMA:
return False
return True
...
context.configure(..., include_object=include_object, ...)