3.2.0 should not have any replacements defined unless 0005a or 0005b migrations have been run previously

This commit is contained in:
Wayne Witzel III 2017-11-02 15:40:30 -04:00
parent f9685717b8
commit 2f86774006
No known key found for this signature in database
GPG Key ID: B4F07BDC564D6301
2 changed files with 22 additions and 6 deletions

View File

@ -6,7 +6,12 @@ from __future__ import unicode_literals
from psycopg2.extensions import AsIs
# Django
from django.db import migrations, models
from django.db import (
connection,
migrations,
models,
OperationalError
)
from django.conf import settings
import taggit.managers
@ -15,15 +20,23 @@ import awx.main.fields
from awx.main.models import Host
def replaces():
squashed = ['0005a_squashed_v310_v313_updates', '0005b_squashed_v310_v313_updates']
try:
recorder = migrations.recorder.MigrationRecorder(connection)
result = recorder.migration_qs.filter(app='main').filter(name__in=squashed).all()
return [('main', m.name) for m in result]
except OperationalError:
return []
class Migration(migrations.Migration):
dependencies = [
('main', '0005_squashed_v310_v313_updates'),
]
replaces = [
('main', '0005a_squashed_v310_v313_updates'),
]
replaces = replaces()
operations = [
# Release UJT unique_together constraint

View File

@ -22,11 +22,14 @@ def squash_data(squashed):
return squashed_keys, key_index
def current_migration():
def current_migration(exclude_squashed=True):
'''Get the latest migration non-squashed migration'''
try:
recorder = migrations.recorder.MigrationRecorder(connection)
return recorder.migration_qs.filter(app='main').exclude(name__contains='squashed').latest('id')
migration_qs = recorder.migration_qs.filter(app='main')
if exclude_squashed:
migration_qs = migration_qs.exclude(name__contains='squashed')
return migration_qs.latest('id')
except (recorder.Migration.DoesNotExist, OperationalError):
return None