Refs #22983 -- Added tests for squashing migrations with functions from migration files.
Follow up to ebb13bbd88
.
This commit is contained in:
parent
59a66f0512
commit
2d07e1aaeb
|
@ -2131,6 +2131,42 @@ class SquashMigrationsTests(MigrationTestBase):
|
||||||
squashed_name='initial', interactive=False, verbosity=0,
|
squashed_name='initial', interactive=False, verbosity=0,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_squashmigrations_manual_porting(self):
|
||||||
|
out = io.StringIO()
|
||||||
|
with self.temporary_migration_module(
|
||||||
|
module='migrations.test_migrations_manual_porting',
|
||||||
|
) as migration_dir:
|
||||||
|
call_command(
|
||||||
|
'squashmigrations',
|
||||||
|
'migrations',
|
||||||
|
'0002',
|
||||||
|
interactive=False,
|
||||||
|
stdout=out,
|
||||||
|
no_color=True,
|
||||||
|
)
|
||||||
|
squashed_migration_file = os.path.join(
|
||||||
|
migration_dir,
|
||||||
|
'0001_squashed_0002_second.py',
|
||||||
|
)
|
||||||
|
self.assertTrue(os.path.exists(squashed_migration_file))
|
||||||
|
self.assertEqual(
|
||||||
|
out.getvalue(),
|
||||||
|
f'Will squash the following migrations:\n'
|
||||||
|
f' - 0001_initial\n'
|
||||||
|
f' - 0002_second\n'
|
||||||
|
f'Optimizing...\n'
|
||||||
|
f' No optimizations possible.\n'
|
||||||
|
f'Created new squashed migration {squashed_migration_file}\n'
|
||||||
|
f' You should commit this migration but leave the old ones in place;\n'
|
||||||
|
f' the new migration will be used for new installs. Once you are sure\n'
|
||||||
|
f' all instances of the codebase have applied the migrations you squashed,\n'
|
||||||
|
f' you can delete them.\n'
|
||||||
|
f'Manual porting required\n'
|
||||||
|
f' Your migrations contained functions that must be manually copied over,\n'
|
||||||
|
f' as we could not safely copy their implementation.\n'
|
||||||
|
f' See the comment at the top of the squashed migration for details.\n'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class AppLabelErrorTests(TestCase):
|
class AppLabelErrorTests(TestCase):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
'SomeModel',
|
||||||
|
[
|
||||||
|
('id', models.AutoField(primary_key=True)),
|
||||||
|
('name', models.CharField(max_length=255)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,15 @@
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
def forwards(apps, schema_editor):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
dependencies = [
|
||||||
|
('migrations', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RunPython(forwards, migrations.RunPython.noop),
|
||||||
|
]
|
Loading…
Reference in New Issue