Loading django/db/migrations/autodetector.py +3 −2 Original line number Diff line number Diff line Loading @@ -1154,6 +1154,7 @@ class MigrationAutodetector(object): Given a migration name, tries to extract a number from the beginning of it. If no number found, returns None. """ if re.match(r"^\d+_", name): return int(name.split("_")[0]) match = re.match(r'^\d+', name) if match: return int(match.group()) return None tests/migrations/test_commands.py +13 −0 Original line number Diff line number Diff line Loading @@ -510,6 +510,19 @@ class MakeMigrationsTests(MigrationTestBase): self.assertIn('\\xda\\xd1\\xcd\\xa2\\xd3\\xd0\\xc9', content) # title.verbose_name self.assertIn('\\u201c\\xd0j\\xe1\\xf1g\\xf3\\u201d', content) # title.default def test_makemigrations_order(self): """ makemigrations should recognize number-only migrations (0001.py). """ module = 'migrations.test_migrations_order' with self.temporary_migration_module(module=module) as migration_dir: if hasattr(importlib, 'invalidate_caches'): # Python 3 importlib caches os.listdir() on some platforms like # Mac OS X (#23850). importlib.invalidate_caches() call_command('makemigrations', 'migrations', '--empty', '-n', 'a', '-v', '0') self.assertTrue(os.path.exists(os.path.join(migration_dir, '0002_a.py'))) def test_failing_migration(self): # If a migration fails to serialize, it shouldn't generate an empty file. #21280 apps.register_model('migrations', UnserializableModel) Loading tests/migrations/test_migrations_order/0001.py 0 → 100644 +12 −0 Original line number Diff line number Diff line # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations class Migration(migrations.Migration): initial = True operations = [ ] tests/migrations/test_migrations_order/__init__.py 0 → 100644 +0 −0 Empty file added. Loading
django/db/migrations/autodetector.py +3 −2 Original line number Diff line number Diff line Loading @@ -1154,6 +1154,7 @@ class MigrationAutodetector(object): Given a migration name, tries to extract a number from the beginning of it. If no number found, returns None. """ if re.match(r"^\d+_", name): return int(name.split("_")[0]) match = re.match(r'^\d+', name) if match: return int(match.group()) return None
tests/migrations/test_commands.py +13 −0 Original line number Diff line number Diff line Loading @@ -510,6 +510,19 @@ class MakeMigrationsTests(MigrationTestBase): self.assertIn('\\xda\\xd1\\xcd\\xa2\\xd3\\xd0\\xc9', content) # title.verbose_name self.assertIn('\\u201c\\xd0j\\xe1\\xf1g\\xf3\\u201d', content) # title.default def test_makemigrations_order(self): """ makemigrations should recognize number-only migrations (0001.py). """ module = 'migrations.test_migrations_order' with self.temporary_migration_module(module=module) as migration_dir: if hasattr(importlib, 'invalidate_caches'): # Python 3 importlib caches os.listdir() on some platforms like # Mac OS X (#23850). importlib.invalidate_caches() call_command('makemigrations', 'migrations', '--empty', '-n', 'a', '-v', '0') self.assertTrue(os.path.exists(os.path.join(migration_dir, '0002_a.py'))) def test_failing_migration(self): # If a migration fails to serialize, it shouldn't generate an empty file. #21280 apps.register_model('migrations', UnserializableModel) Loading
tests/migrations/test_migrations_order/0001.py 0 → 100644 +12 −0 Original line number Diff line number Diff line # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import migrations class Migration(migrations.Migration): initial = True operations = [ ]