mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-31 07:04:12 +00:00 
			
		
		
		
	Add rule for django south inconsistent migrations
This commit is contained in:
		| @@ -27,13 +27,13 @@ def stderr(): | ||||
| south.exceptions.GhostMigrations:  | ||||
|  | ||||
|  ! These migrations are in the database but not on disk: | ||||
|     <tracker: 0033_auto__...> | ||||
|     <tracker: 0034_fill_...> | ||||
|     <tracker: 0035_rename_...> | ||||
|     <qm_auth: 0003_add_...> | ||||
|     <qm_auth: 0004_denormalize_...> | ||||
|     <tracker: 0033_auto....> | ||||
|     <tracker: 0034_fill...> | ||||
|     <app1: 0033_auto__...> | ||||
|     <app1: 0034_fill_...> | ||||
|     <app1: 0035_rename_...> | ||||
|     <app2: 0003_add_...> | ||||
|     <app2: 0004_denormalize_...> | ||||
|     <app1: 0033_auto....> | ||||
|     <app1: 0034_fill...> | ||||
|  ! I'm not trusting myself; either fix this yourself by fiddling | ||||
|  ! with the south_migrationhistory table, or pass --delete-ghost-migrations | ||||
|  ! to South to have it delete ALL of these records (this may not be good). | ||||
|   | ||||
							
								
								
									
										43
									
								
								tests/rules/test_django_south_merge.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								tests/rules/test_django_south_merge.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| import pytest | ||||
| from thefuck.rules.django_south_merge import match, get_new_command | ||||
| from tests.utils import Command | ||||
|  | ||||
|  | ||||
| @pytest.fixture | ||||
| def stderr(): | ||||
|     return '''Running migrations for app: | ||||
|  ! Migration app:0003_auto... should not have been applied before app:0002_auto__add_field_query_due_date_ but was. | ||||
| Traceback (most recent call last): | ||||
|   File "/home/nvbn/work/.../bin/python", line 42, in <module> | ||||
|     exec(compile(__file__f.read(), __file__, "exec")) | ||||
|   File "/home/nvbn/work/.../app/manage.py", line 34, in <module> | ||||
|     execute_from_command_line(sys.argv) | ||||
|   File "/home/nvbn/work/.../lib/django/core/management/__init__.py", line 443, in execute_from_command_line | ||||
|     utility.execute() | ||||
|   File "/home/nvbn/work/.../lib/django/core/management/__init__.py", line 382, in execute | ||||
|     self.fetch_command(subcommand).run_from_argv(self.argv) | ||||
|   File "/home/nvbn/work/.../lib/django/core/management/base.py", line 196, in run_from_argv | ||||
|     self.execute(*args, **options.__dict__) | ||||
|   File "/home/nvbn/work/.../lib/django/core/management/base.py", line 232, in execute | ||||
|     output = self.handle(*args, **options) | ||||
|   File "/home/nvbn/work/.../app/lib/south/management/commands/migrate.py", line 108, in handle | ||||
|     ignore_ghosts = ignore_ghosts, | ||||
|   File "/home/nvbn/work/.../app/lib/south/migration/__init__.py", line 207, in migrate_app | ||||
|     raise exceptions.InconsistentMigrationHistory(problems) | ||||
| south.exceptions.InconsistentMigrationHistory: Inconsistent migration history | ||||
| The following options are available: | ||||
|     --merge: will just attempt the migration ignoring any potential dependency conflicts. | ||||
| ''' | ||||
|  | ||||
|  | ||||
| def test_match(stderr): | ||||
|     assert match(Command('./manage.py migrate', stderr=stderr), None) | ||||
|     assert match(Command('python manage.py migrate', stderr=stderr), None) | ||||
|     assert not match(Command('./manage.py migrate'), None) | ||||
|     assert not match(Command('app migrate', stderr=stderr), None) | ||||
|     assert not match(Command('./manage.py test', stderr=stderr), None) | ||||
|  | ||||
|  | ||||
| def test_get_new_command(): | ||||
|     assert get_new_command(Command('./manage.py migrate auth'), None) \ | ||||
|            == './manage.py migrate auth --merge' | ||||
		Reference in New Issue
	
	Block a user