1
0
mirror of https://github.com/django/django.git synced 2025-03-24 08:10:45 +00:00

Refs #22983 -- Added tests for squashing migrations with functions from migration files.

Follow up to ebb13bbd884d8c3053d1d342ef0423240feb05e6.
This commit is contained in:
Mariusz Felisiak 2021-12-27 18:49:19 +01:00 committed by GitHub
parent 59a66f0512
commit 2d07e1aaeb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 66 additions and 0 deletions

View File

@ -2131,6 +2131,42 @@ class SquashMigrationsTests(MigrationTestBase):
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):
"""

View File

@ -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)),
],
),
]

View File

@ -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),
]