• Stan Hu's avatar
    Prevent EE backport migrations from running if CE is not migrated · 1b063778
    Stan Hu authored
    If a user upgraded to any GitLab 11.x EE version but switched
    back to CE, it's possible the state of the EE tables are not
    in the right state for the EE backport migration to work properly.
    In particular, there were three tables that had trouble:
    
    * epics
    * geo_event_log
    * vulnerability_feedback
    
    The EE backport migration would fail while trying to add foreign key
    constraints because a key didn't exist in the table. This happens
    because any EE migration that add or removed columns between v11.0.0 and
    v11.11.3 are not guaranteed to be applied in an CE installation. The EE
    backport schema does not individually backport these migrations.
    
    We now check if certain columns are present to determine whether
    the backport migration is in the proper state. CE users are required
    to upgrade to v11.11.3 EE if they ever installed EE previously before
    they can go back to v12.x CE.
    
    Tested via:
    
    ```
    git checkout -f v11.0.0-ee
    bundle exec rake db:reset
    git checkout .; git checkout -f v11.11.3
    bundle exec rake db:migrate
    git checkout .; git checkout -f v12.0.0
    bundle exec rake db:migrate
    <failure happens>
    ```
    1b063778
backport_enterprise_schema_spec.rb 1.1 KB