On Mar 26, 2012, at 9:58 AM, Michael Bayer wrote:

> 
> On Mar 25, 2012, at 7:21 PM, John Anderson wrote:
> 
>> 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?
>> 
>> def upgrade():
>>    ### commands auto generated by Alembic - please adjust! ###
>>    op.drop_table(u'presentation')
>>    op.drop_table(u'file')
>>    ### end Alembic commands ###
>> 
>> def downgrade():
>>    ### commands auto generated by Alembic - please adjust! ###
>>    op.create_table(u'presentation',
>>    sa.Column(u'pk', sa.INTEGER(), 
>> server_default='nextval('presentation_pk_seq'::regclass)', nullable=False),
>>    sa.Column(u'name', sa.TEXT(), nullable=True),
>>    sa.Column(u'description', sa.TEXT(), nullable=True),
>>    sa.Column(u'presenter', sa.TEXT(), nullable=True),
>>    sa.Column(u'date', postgresql.TIMESTAMP(), nullable=True),
>>    sa.PrimaryKeyConstraint(u'pk', name=u'presentation_pkey')
>>    )
>>    op.create_table(u'file',
>>    sa.Column(u'pk', sa.INTEGER(), 
>> server_default='nextval('file_pk_seq'::regclass)', nullable=False),
>>    sa.Column(u'user_pk', sa.INTEGER(), nullable=False),
>>    sa.Column(u'mimetype', sa.TEXT(), nullable=False),
>>    sa.Column(u'uid', sa.TEXT(), nullable=False),
>>    sa.Column(u'filename', sa.TEXT(), nullable=False),
>>    sa.Column(u'size', sa.INTEGER(), nullable=False),
>>    sa.ForeignKeyConstraint(['user_pk'], [u'user.pk'], 
>> name=u'file_user_pk_fkey'),
>>    sa.PrimaryKeyConstraint(u'pk', name=u'file_pkey')
>>    )
>>    ### end Alembic commands ###
> 
> 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.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to