Nukedb: příkaz, který všechny aplikace odmigruje
Uvede tedy databázi do naprosto čistého stavu, bez tabulek ap. Není závislá na databázi (narozdíl od 'rm db-local.sqlite3') a nepotřebuje práva vytvářet nové databáze (narozdíl od 'DROP DATABASE' nebo './manage.py reset_db' nad Postgresem) Jinak je to prostě for-cyklus přes INSTALLED_APPS.
This commit is contained in:
		
							parent
							
								
									402f5bdeb4
								
							
						
					
					
						commit
						7a911b3a3d
					
				
					 1 changed files with 20 additions and 0 deletions
				
			
		
							
								
								
									
										20
									
								
								seminar/management/commands/nukedb.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								seminar/management/commands/nukedb.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | |||
| from mamweb.settings import INSTALLED_APPS | ||||
| from django.core.management.base import BaseCommand, CommandError | ||||
| from django.core.management import call_command | ||||
| 
 | ||||
| class Command(BaseCommand): | ||||
| 	help = "Odmigruje všechny moduly (i.e. smaže všechny tabulky, ale databázi nechá)" | ||||
| 
 | ||||
| 	def add_arguments(self, parser): | ||||
| 		# TODO: --force (makat a neblábolit) | ||||
| 		pass | ||||
| 	def handle(self, *args, **options): | ||||
| 		# TODO: zeptat se | ||||
| 		for app in INSTALLED_APPS: | ||||
| 			app = app.split('.')[-1] | ||||
| 			try: | ||||
| 				call_command('migrate', app, 'zero') | ||||
| 			except CommandError: | ||||
| 				# app nemá migrace (aspoň typicky) | ||||
| 				pass | ||||
| 		call_command('showmigrations') | ||||
		Loading…
	
		Reference in a new issue
	
	 Pavel "LEdoian" Turinsky
						Pavel "LEdoian" Turinsky