On Saturday, March 2, 2019 at 9:58:16 AM UTC-8, Mike Pastore wrote: > > Jeremy, > > Just to confirm something. It appears that dropping the table :foo does > not also drop all constraint validations for table :foo. So my down > migrations should all look like this: > > down do > drop_table(:foo) > drop_constraint_validations_for(:table=>:foo) > end > > In order to prevent the sequel_constraint_validations table from becoming > "cluttered." Or am I missing something? > > This is particular relevant if you later recreate the table with > similar-but-slightly-different constraint validations. I had a case where I > created a constraint validation with :allow_nil=>false, subsequently > dropped the table, then later recreated the table and the same-named > constraint validation but with :allow_nil=>true. This led to a situation > where the former rule was still in effect when I expected the latter. > > I could also see a situation where defunct constraint validations persist > in the sequel_constraint_validations table—for a dropped column, say—and > get applied by the model plugin even though they are no longer valid. > > It would be nice if dropping a table or a column automatically removed > applicable constraint validations, if that's even possible. Just a wishful > thought. >
It is expected that currently you have to drop the constraint validations manually. However, I think it makes sense to drop them automatically, and it should still be backwards compatible (the drop_constraint_validations_for call should be idempotent). If you would like to work on a PR for the constraint_validations extension, that would probably speed up the process, but I'll try to get to it sometime in the next few releases. 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 post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sequel-talk. For more options, visit https://groups.google.com/d/optout.
