OperationalError:table" django_session"已经存在

时间:2017-09-01 07:29:51

标签: python django

我已经应用了我能找到的所有解决方案,但是我仍然遇到操作错误,而且当我运行项目时它会出现如下错误:

  

您有1个未应用的迁移.....

我已经应用了所有迁移。

我尝试了这个解决方案:

  1. 删除迁移目录下的所有文件,init.py(成功)
  2. 除外
  3. 运行$python manage.py makemigrations <appname>(已成功)
  4. 运行$python manage.py sqlmigrate <appname> 001(成功)
  5. 运行$python manage.py migrate(失败:操作错误)
  6. 由于第4次失败,我在运行项目

    时收到了迁移声明

    我该怎么办?

    以下是我的代码:

    urls.py

    urlpatterns = [  url(r'^$', views.index,name='index'), url(r'.*signup/$' , views.signup.as_view(), name='signup'),  ]
    

    models.py

    class PatientSignup(models.Model):
        Pname = models.CharField()
    

    forms.py

    class PatientSignupForm(forms.ModelForm):
        forms.CharField()  # add other fileds
    

    views.py

    class signup(TemplateView):
        temp = 'personal/signup.html'
    
        def get(self, request):
            psform = PatientSignupForm()
            data = PatientSignup.objects.all()
            args = {'psform': psform, 'data': data}
            return render(request, self.temp, args)
    
    
        def post(self, request):
            psform = PatientSignupForm(request.POST)
            if psform.is_valid():
                psform.save()
            cd = psform.cleaned_data
            args = {'psform': psform, 'data': data}
            return render(request, self.temp, args)
    

    模板代码:

    <form method="post">
        { % csrf_token %}
        <div>
            {{psform.as_p}}
            <button type="submit"/>
        </div>
    </form>
    

2 个答案:

答案 0 :(得分:1)

您正尝试在已创建的数据库字段上应用迁移。您可以运行migrate --fake命令,但在您的情况下,您似乎有多个要迁移的迁移。首先,通过创建它的备份来删除当前的数据库。现在输入,

python manage.py makemigrations app_name

此时,您已创建了迁移文件,请输入以下命令

python manage.py migrate

这应该可以解决您的迁移问题。感谢

答案 1 :(得分:0)

步骤0)删除数据库并再次创建或删除表objA中的所有条目,然后再次尝试迁移。