> I have an existing app that I want to add some features to, so I created the new models and then ran --autogenerate and it created me a revision file where in downgrade it was creating all my files and in upgrade it was dropping the tables. That was backwards from what I expected, since my database didn't have the tables but the model did.
>
> Am I thinking about this in the wrong way?
>
the autogen you're illustrating here indicates that when you ran --autogenerate, the database had two tables already present - "presentation" and "file", and the MetaData object you passed to EnvironmentContext.configure contained no tables. Autogen then tries to generate the changes that would relate to making the database look just like the model you gave it - in this case removing those tables in the database which aren't in the model.
Not sure how you're describing the opposite setup producing this, that's not how autogenerate works.
so continuing, Alembic logs everything it does when it does autogenerate so inspecting that would give you the answer to what decisions it's making.
So it must be detecting that my base class doesn't have any models defined yet? So I just have to figure out why the metadata isn't setup just yet?