fixed duplicate detection in migration 0200
This commit is contained in:
parent
febf3a3d86
commit
36c0fbffbe
25
cookbook/management/commands/seed_basic_data.py
Normal file
25
cookbook/management/commands/seed_basic_data.py
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
from django.conf import settings
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
from django.contrib.postgres.search import SearchVector
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
from django.utils import translation
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
from django_scopes import scopes_disabled
|
||||||
|
|
||||||
|
from cookbook.managers import DICTIONARY
|
||||||
|
from cookbook.models import Recipe, Step, Space
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = 'Seeds some basic data (space, account, food)'
|
||||||
|
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
with scopes_disabled():
|
||||||
|
user = User.objects.get_or_create(username='test')[0]
|
||||||
|
user.set_password('test')
|
||||||
|
user.save()
|
||||||
|
|
||||||
|
space = Space.objects.get_or_create(
|
||||||
|
name='Test Space',
|
||||||
|
created_by=user
|
||||||
|
)[0]
|
@ -13,9 +13,24 @@ def migrate_icons(apps, schema_editor):
|
|||||||
PropertyType = apps.get_model('cookbook', 'PropertyType')
|
PropertyType = apps.get_model('cookbook', 'PropertyType')
|
||||||
RecipeBook = apps.get_model('cookbook', 'RecipeBook')
|
RecipeBook = apps.get_model('cookbook', 'RecipeBook')
|
||||||
|
|
||||||
|
duplicate_meal_types = MealType.objects.values('space_id', 'name').annotate(name_count=Count('name')).exclude(name_count=1).all()
|
||||||
|
if len(duplicate_meal_types) > 0:
|
||||||
|
raise RuntimeError(f'Duplicate MealTypes found, please remove/rename them and run migrations again/restart the container. {duplicate_meal_types}')
|
||||||
MealType.objects.update(name=Concat(F('icon'), Value(' '), F('name')))
|
MealType.objects.update(name=Concat(F('icon'), Value(' '), F('name')))
|
||||||
|
|
||||||
|
duplicate_meal_types = Keyword.objects.values('space_id', 'name').annotate(name_count=Count('name')).exclude(name_count=1).all()
|
||||||
|
if len(duplicate_meal_types) > 0:
|
||||||
|
raise RuntimeError(f'Duplicate Keyword found, please remove/rename them and run migrations again/restart the container. {duplicate_meal_types}')
|
||||||
Keyword.objects.update(name=Concat(F('icon'), Value(' '), F('name')))
|
Keyword.objects.update(name=Concat(F('icon'), Value(' '), F('name')))
|
||||||
|
|
||||||
|
duplicate_meal_types = PropertyType.objects.values('space_id', 'name').annotate(name_count=Count('name')).exclude(name_count=1).all()
|
||||||
|
if len(duplicate_meal_types) > 0:
|
||||||
|
raise RuntimeError(f'Duplicate PropertyType found, please remove/rename them and run migrations again/restart the container. {duplicate_meal_types}')
|
||||||
PropertyType.objects.update(name=Concat(F('icon'), Value(' '), F('name')))
|
PropertyType.objects.update(name=Concat(F('icon'), Value(' '), F('name')))
|
||||||
|
|
||||||
|
duplicate_meal_types = RecipeBook.objects.values('space_id', 'name').annotate(name_count=Count('name')).exclude(name_count=1).all()
|
||||||
|
if len(duplicate_meal_types) > 0:
|
||||||
|
raise RuntimeError(f'Duplicate RecipeBook found, please remove/rename them and run migrations again/restart the container. {duplicate_meal_types}')
|
||||||
RecipeBook.objects.update(name=Concat(F('icon'), Value(' '), F('name')))
|
RecipeBook.objects.update(name=Concat(F('icon'), Value(' '), F('name')))
|
||||||
|
|
||||||
|
|
||||||
@ -25,7 +40,7 @@ class Migration(migrations.Migration):
|
|||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
migrations.RunPython( migrate_icons),
|
migrations.RunPython(migrate_icons),
|
||||||
migrations.AlterModelOptions(
|
migrations.AlterModelOptions(
|
||||||
name='propertytype',
|
name='propertytype',
|
||||||
options={'ordering': ('order',)},
|
options={'ordering': ('order',)},
|
||||||
|
Loading…
Reference in New Issue
Block a user