I want to add alembic to an existing ,sqlalchemy using, project, with a working production db. I fail to find what's the standard way to do a "zero" migration == the migration setting up the db as it is now (For new developers setting up their environment) 
Currently I've added import the declarative base class and all the models using it to the env.py , but first time alembic -c alembic.dev.ini revision  --autogenerate does create the existing tables. 
And I need to "fake" the migration on existing installations - using code. For django ORM I know how to make this work, but I fail to find what's the right way to do this with sqlalchemy/alembic
alembic revision --autogenerate inspects the state of the connected database and the state of the target metadata and then creates a migration that brings the database in line with metadata.
If you are introducing alembic/sqlalchemy to an existing database, and you want a migration file that given an empty, fresh database would reproduce the current state- follow these steps.

Ensure that your metadata is truly in line with your current database(i.e. ensure that running alembic revision --autogenerate creates a migration with zero operations).

Create a new temp_db that is empty and point your sqlalchemy.url in alembic.ini to this new temp_db.

Run alembic revision --autogenerate. This will create your desired bulk migration that brings a fresh db in line with the current one.

Remove temp_db and re-point sqlalchemy.url to your existing database.

Run alembic stamp head. This tells sqlalchemy that the current migration represents the state of the database- so next time you run alembic upgrade head it will begin from this migration.
Creating "zero state" migration for existing db with sqlalchemy/alembic and "faking" zero migration for that existing db