On Tue, Sep 21, 2021 at 6:31 PM John Knapp <[email protected]> wrote:

> Hi,
>
> I'm transitioning a table from a three way composite PK to a single
> integer PK thus:
>
>    1. In the up:
>       1. drop_constraint :jcus_requirements_orgs_pkey
>       2. add_primary_key :id
>       2. In the down:
>       1. drop_constraint :jcus_requirements_pkey, type: :primary_key
>       2. add_primary_key [:jcu_id, :requirement_id, :org_id], name:
>       :jcus_requirements_orgs_pkey
>
> However, when running the down, the constraint is removed but the column
> remains. (Adding a name: :id didn't help but I doubt you're surprised by
> that.)
>
> I wound up adding a drop_column :id in the down block which left me with
> a reciprocal up / down migration. (I'm picky that way.)
>
> But I remain curious if I've missed a more obvious solution (to remove
> constraint and the named column in a single step) or if this is a bug. So .
> . . I thought I'd ask. :-)
>

Depending on the database, you could try just the drop_column and see if it
also removes the constraint.  However, I think the most portable approach
is the one you already have with both the drop_constraint and the
drop_column.

Don't fear separate up/down migrations.  Over 90% of the migrations in my
production applications use up/down and not change.

Thanks,
Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sequel-talk/CADGZSSeyN-ND%3DYp8Nr4P6iHz4p5JKFiWgLjOFWAxzBQ3DD8E%3Dw%40mail.gmail.com.

Reply via email to