-
Notifications
You must be signed in to change notification settings - Fork 9.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request - Database integrity tests #1232
Comments
Assigning Eugene to consider in context of the Magento 2 upgrade tool. Talking with @TexanHogman sounds like this should really be considered a bug for each module that's doing this and assigned to those teams to ensure consistency in the schema upgrade scripts. |
Thanks Chuck - if you wanted to solve it on an architectural level I suppose one could try to do away with different scripts for upgrade vs install as this is a duplication in itself. |
We have implemented the test and run it to compare DB schemas. Closing this issue. Please reopen if you have additional questions |
…ration Fix DI declaration of preferences on Index interfaces
This is a continuation of learning from M1.
With Magento 1's sql installation routine it is possible to create a disconnect between a fresh installation and an upgrade (since the upgrade code can be different to the install code - not sure how this is handled in M2). These differences can create subtly different databases. For example the following is a very common example when comparing a 1.3.2.4 installation upgraded to 1.9.1.0 vs. a direct install of 1.9.1.0:
vs.
Or
vs.
Or actual value content
vs.
A few more interesting tables
eav_attribute
oreav_form_fieldset
.While I am not aware of any current bugs caused by the above it is only a matter of time until it will create hard to track issues (ie someone relying on a default value which is different depending on upgrade path/history).
For Magento2 I would like ebay to adopt something like the following test:
1.) Install Version N-1
2.) Run Integration tests or something else that creates meaningful data (product, customer, order, run indexer)
3.) Upgrade to Version N
4.) Take database snapshot
5.) Install Version N into a fresh database
6.) Run the same tests as 2.)
7.) Take another database snapshot
8.) Compare 7.) and 4.) - my expectation here is that these are functionally the same (ie excluding any date/time fields)
The text was updated successfully, but these errors were encountered: