Получение django.db.utils.ProgrammingError: (1146, "Table 'password_management.accounts_workspace' doesn't exist") при выполнении миграций БД
Я пытаюсь выполнить миграцию, выполнив следующую команду:
python manage.py makemigrations
Но я получаю следующую ошибку:
django.db.utils.ProgrammingError: (1146, "Table 'password_management.accounts_workspace' doesn't exist")
Я использую базу данных MySQL под названием password_management
.
Ранее мое приложение Django работало нормально со всеми миграциями пользователей и прочим. Когда я создал эту новую модель Workspace
, я получаю вышеупомянутую ошибку.
Полная информация об ошибке:
Моя модель Workspace
представлена ниже:
class Workspace(models.Model):
name = models.CharField(max_length=254)
name_slug = models.SlugField(editable=False)
admin = models.ForeignKey(User, on_delete=models.CASCADE, default=None)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self) -> str:
"""
Returns a string to as an instance name
"""
return (self.name)
def save(self, *args, **kwargs):
if self.name:
try:
group = Group.objects.get(name=self.name)
group.delete()
except Exception as ex:
print(ex)
permissions = Permission.objects.all
for p in permissions:
if p.name.endswith(self.name):
p.delete()
super(Workspace, self).save(*args, **kwargs)
self.name_slug = slugify(self.name)
workspace_group = Group.objects.create(
name="manage-" + self.name_slug
)
content_type = ContentType.objects.get_for_model(Workspace)
permissions = []
permissions.append(
Permission.objects.create(
codename='can_remove_from_workspace_%s' % self.name_slug,
name='Can Remove User From Workspace %s' % self.name,
content_type=content_type,
)
)
permissions.append(
Permission.objects.create(
codename='can_add_to_workspace_%s' % self.name_slug,
name='Can Add User To Workspace %s' % self.name,
content_type=content_type,
)
)
permissions.append(
Permission.objects.create(
codename='can_view_from_workspace_%s' % self.name_slug,
name='Can View User From Workspace %s' % self.name,
content_type=content_type,
)
)
workspace_group.permissions.set(permissions)
super(Workspace, self).save(*args, **kwargs)
def make_admin(self, user):
user.add_workspace(self)
self.admin = user
self.save()
def remove_admin(self):
self.admin = None
self.save()
def invite_workspace_user(self, user, invite_form_data):
workspace = invite_form_data["workspace"]
invitation = Invitation.objects.create(
created_by = user,
invitee_email = invite_form_data["invitee_email"],
invitee_first_name = invite_form_data["invitee_first_name"],
invitee_last_name = invite_form_data["invitee_last_name"]
)
invitation.send_invite_user_email(workspace)
def get_by_name(self, name):
try:
return self.objects.get(name=name)
except:
return None
В admins.py
у меня есть:
from .models import Workspace
admin.site.register(Workspace)
В forms.py
у меня есть:
from .models import Workspace
WORKSPACES_CHOICES = []
workspaces = Workspace.objects.all()
for i in range(len(workspaces)):
WORKSPACES_CHOICES.append(tuple((str(i + 1), workspaces[i].name)))
WORKSPACES_CHOICES = tuple(WORKSPACES_CHOICES)
class InviteUserByAdminForm(forms.ModelForm):
workspaces = forms.MultipleChoiceField(
widget=forms.CheckboxSelectMultiple,
choices=WORKSPACES_CHOICES
)
class Meta:
model = Invitation
fields = (
"invitee_first_name",
"invitee_last_name",
"sent_to",
"workspaces",
)
Я уже попробовал все решения, упомянутые в этой теме на stackoverflow. Но ни одно из них не помогло мне.
Кто-нибудь может сказать мне, что не так?