def sentry_create_organization(name): model = sentry_find_organization(name) existing = model is not None if not existing: model = Organization() model.name = name model.save() return model, existing
def handle(self, **options): from django.db.models import Q from sentry.constants import RESERVED_ORGANIZATION_SLUGS from sentry.models import Organization, Project, Team, ProjectKey from sentry.db.models import update from sentry.db.models.utils import slugify_instance from sentry.utils.query import RangeQuerySetWrapperWithProgressBar print("Correcting data on organizations") queryset = Organization.objects.filter( slug__isnull=True, ) for org in RangeQuerySetWrapperWithProgressBar(queryset): slugify_instance(org, org.name, RESERVED_ORGANIZATION_SLUGS) org.save() # Create teams for any projects that are missing them print("Correcting data on projects") queryset = Project.objects.filter( Q(team__isnull=True) | Q(organization__isnull=True), ).select_related('owner') for project in RangeQuerySetWrapperWithProgressBar(queryset): if not project.team: organization = Organization( name=project.name, owner=project.owner, ) slugify_instance(organization, organization.name, RESERVED_ORGANIZATION_SLUGS) organization.save() team = Team( name=project.name, owner=project.owner, oprganization=organization, ) slugify_instance(team, team.name, RESERVED_ORGANIZATION_SLUGS) team.save() update(project, organization=team.organization, team=team) # Create missing project keys print("Creating missing project keys") queryset = Team.objects.all() for team in RangeQuerySetWrapperWithProgressBar(queryset): for member in team.member_set.select_related('user'): for project in team.project_set.all(): try: created = ProjectKey.objects.get_or_create( project=project, user=member.user, )[1] except ProjectKey.MultipleObjectsReturned: pass
def handle(self, **options): from django.db.models import Q from sentry.constants import RESERVED_ORGANIZATION_SLUGS from sentry.models import Organization, Project, Team, ProjectKey from sentry.db.models import update from sentry.db.models.utils import slugify_instance from sentry.utils.query import RangeQuerySetWrapperWithProgressBar print("Correcting data on organizations") queryset = Organization.objects.filter(slug__isnull=True, ) for org in RangeQuerySetWrapperWithProgressBar(queryset): slugify_instance(org, org.name, RESERVED_ORGANIZATION_SLUGS) org.save() # Create teams for any projects that are missing them print("Correcting data on projects") queryset = Project.objects.filter( Q(team__isnull=True) | Q(organization__isnull=True), ).select_related('owner') for project in RangeQuerySetWrapperWithProgressBar(queryset): if not project.team: organization = Organization( name=project.name, owner=project.owner, ) slugify_instance(organization, organization.name, RESERVED_ORGANIZATION_SLUGS) organization.save() team = Team( name=project.name, owner=project.owner, oprganization=organization, ) slugify_instance(team, team.name, RESERVED_ORGANIZATION_SLUGS) team.save() update(project, organization=team.organization, team=team) # Create missing project keys print("Creating missing project keys") queryset = Team.objects.all() for team in RangeQuerySetWrapperWithProgressBar(queryset): for member in team.member_set.select_related('user'): for project in team.project_set.all(): try: created = ProjectKey.objects.get_or_create( project=project, user=member.user, )[1] except ProjectKey.MultipleObjectsReturned: pass
from sentry import options options.set('system.url-prefix', 'http://*****:*****@localhost') options.set('auth.allow-registration', True) options.set('beacon.anonymous', True) from django.conf import settings from sentry.models import (Team, Project, ProjectKey, User, Organization, OrganizationMember, OrganizationMemberTeam) organization = Organization.objects.first() if not organization: organization = Organization() organization.name = 'Sentry' organization.save() team = Team.objects.first() if not team: team = Team() team.name = 'Sentry' team.organization = organization team.save() django_project = Project.objects.filter(name='Django').first() if not django_project: django_project = Project() django_project.team = team django_project.name = 'Django' django_project.organization = organization
from sentry.utils.runner import configure configure() from sentry.models import Team, Project, ProjectKey, User, Organization user = User() user.username = '******' user.email = '{{sentry.bootstrap.email}}' user.is_superuser = True user.set_password('{{sentry.bootstrap.password}}') user.save() organization = Organization() organization.name = '{{sentry.bootstrap.organization}}' organization.owner = user organization.save() team = Team() team.organization = organization team.name = '{{sentry.bootstrap.team}}' team.owner = user team.save() project = Project() project.organization = organization project.team = team project.owner = user project.name = '{{sentry.bootstrap.project}}' project.save() #let's replace the key