|
|
|
|
|
by liyanchang
2603 days ago
|
|
That's correct. The DML changes as part of CI are somewhat new so we haven't ironed it all out yet. Here's the scenario that I think you're laying out:
1. Commit A creates column foo
2. Commit B has DML that reference column foo
3. Commit C removes column foo This works fine if our CI deployer does each commit individually. First roll out any schema changes, then run any DML SQL. However, our deployer might pick up all those changes and since we roll out the schema migrations first (in this case a create + drop -> NOP) and then runs the DML (which will error), this is an issue because of the rollup. In practice, we have yet to see this case (most of the time, the dev who write the DML is close enough to the code to know if it's going to be dropped soon and we don't drop that many columns - in part because we know that there be dragons) but truthfully, I haven't thought about it much and need to think through what the impact is beyond this example. Thanks for helping me refine my thinking and I'll have something to ponder on this weekend! |
|