diff --git a/start-web.sh b/start-web.sh index 136c4bbd..611c0ba0 100644 --- a/start-web.sh +++ b/start-web.sh @@ -29,6 +29,23 @@ try: call_command('migrate', 'cmsplugin_filer_image', interactive=False, skip_checks=True) finally: MigrationLoader.check_consistent_history = check +# django-reversion 1.x tables: 3.x only ships one squashed migration that would +# re-create them, so bring the old tables to its schema and record it as applied. +squash = '0001_squashed_0004_auto_20160611_1202' +if (recorder.migration_qs.filter(app='reversion', name='0002_auto_20141216_1509').exists() + and not recorder.migration_qs.filter(app='reversion', name=squash).exists()): + with connection.cursor() as cursor: + for sql in ( + 'ALTER TABLE reversion_revision DROP COLUMN manager_slug', + 'ALTER TABLE reversion_version DROP COLUMN object_id_int', + 'ALTER TABLE reversion_version ALTER COLUMN object_id TYPE varchar(191)', + "ALTER TABLE reversion_version ADD COLUMN db varchar(191) NOT NULL DEFAULT 'default'", + 'ALTER TABLE reversion_version ALTER COLUMN db DROP DEFAULT', + 'ALTER TABLE reversion_version ADD CONSTRAINT reversion_version_db_unique ' + 'UNIQUE (db, content_type_id, object_id, revision_id)', + ): + cursor.execute(sql) + recorder.record_applied('reversion', squash) call_command('migrate', interactive=False, skip_checks=True) from django.contrib.sites.models import Site