Add this in your ini file:
[alembic:exclude]
tables = spatial_ref_sys
In env.py
:
def exclude_tables_from_config(config_):
tables_ = config_.get("tables", None)
if tables_ is not None:
tables = tables_.split(",")
return tables
exclude_tables = exclude_tables_from_config(config.get_section('alembic:exclude'))
def include_object(object, name, type_, reflected, compare_to):
if type_ == "table" and name in exclude_tables:
return False
else:
return True
def run_migrations_offline():
"""Run migrations in 'offline' mode.
This configures the context with just a URL
and not an Engine, though an Engine is acceptable
here as well. By skipping the Engine creation
we don't even need a DBAPI to be available.
Calls to context.execute() here emit the given string to the
script output.
"""
# url = config.get_main_option("sqlalchemy.url")
context.configure(url=engine.url, include_object=include_object)
with context.begin_transaction():
context.run_migrations()
def run_migrations_online():
"""Run migrations in 'online' mode.
In this scenario we need to create an Engine
and associate a connection with the context.
"""
if isinstance(engine, Engine):
connection = engine.connect()
else:
raise Exception('Expected engine instance got %s instead' % type(engine))
context.configure(
connection=connection,
target_metadata=target_metadata,
include_object=include_object
)
try:
with context.begin_transaction():
context.run_migrations()
finally:
connection.close()
Alternative way:
def include_object(object, name, type_, reflected, compare_to):
if type_ == "table" and name == 'spatial_ref_sys':
return False
else:
return True
def run_migrations_offline():
#[…]
context.configure(# whatever generated params already exist, then
include_object=include_object)
# […]