My requirement is to generate a SQL script and upload that script to cloud storage. I'm using Alembic Command to generate SQL script.
command.upgrade(alembic_cfg, revision='a:b', sql=True)
The command.upgrade function prints the SQL script into the console. If multiple revisions are there then there will be multiple INFO logs.
Is there any way to store the raw SQL script to a variable?
raw_sql = command.upgrade(alembic_cfg, revision='a:b', sql=True)
upload_script(raw_sql)
I know can make use of the cli alembic upgrade head --sql > migration.sql
It seems like API is not available to achieve this. Finally, I have settled with the CLI command.
upgrade = subprocess.run(['alembic', 'upgrade', upgrade_revision_range, '--sql'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
raw_sql = upgrade.stdout.decode('utf-8')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With