django 做 migrate 时 表已存在的处理方法

在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数据,会直接将整个测试库(如sqlite3)拿到本机来。这种情况下,如果执行的顺序不对,很容易在执行migrate的时候出现数据库已存在的错误:

django.db.utils.OperationalError: (1050, "Table 'xxx' already exists")

要处理这种情况,如果是数据表都已经存在了,在migrate时直接使用 --fake-initial 来处理

python manage.py migrate --fake-initial

如果是因有外键存在,需要初始化多个表,且有部分数据表已创建,又有部分未创建,可以使用 --fake <appname>来处理

python manage.py migrate --fake <appname>

参考:https://stackoverflow.com/questions/25924858/django-1-7-migrate-gets-error-table-already-exists

以上这篇django 做 migrate 时 表已存在的处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决Django migrate No changes detected 不能创建表的问题

    起因 修改了表结构以后执行python3 manage.py migrate 报错: django.db.utils.OperationalError: (1091, "Can't DROP 'email'; check that column/key exists") 所以进数据库把对应的表删除了,想着重新生成这张表. 删除表以后执行: python3 manage.py makemigrations python3 manage.py migrate 还是不能生成表,提示:No c

  • 解决Django数据库makemigrations有变化但是migrate时未变动问题

    写models.py时缺少了一个 verbose_name,导致数据库出现问题,整了很久,摸索出重新建立数据库的方法: 首先删除每个app中的migrations中的除了init.py的文件,在数据库中清空所有的表,然后执行migrate,这时会自动生成系统默认的那些表,然后执行makemigrations,再执行migrate 如果只是众多应用中的一个出了问题的话,删除与之相关的表,然后进入django_migrations表中,将相应的app那项记录删除,然后再执行 makemigratio

  • django数据库migrate失败的解决方法解析

    Django是一个MVC架构的web框架,其中,数据库就是"Module".使用这种框架,我们不必写一条SQL语句,就可以完成对数据库的所有操作.在之前的Django版本中,我们像操作本地对象那样操作数据对象,在更改保存之后,执行python manage.py syncdb命令来同步数据库,在我使用的1.9.2版本中,需要依次执行一下步骤: python manage.py makemigrations (这个命令会根据你对数据库做出的更改生成操作数据库的python脚本) pyth

  • 解决Django migrate不能发现app.models的表问题

    有时候运行Django的migrate命令不能创建INSTALLED_APPS中的app中的models.py的数据库表, 这时可以先运行: python manage.py makemigrations [appname] 这里的appname是指你需要指定django检查的app name, 运行该命令后, 即可生成迁移文件, 最后运行: python manage.py migrate 以上一般可以解决问题, 如果还是有创建表格不全等问题的话, 可以将migrations文件, 数据库表,

  • django 做 migrate 时 表已存在的处理方法

    在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数据,会直接将整个测试库(如sqlite3)拿到本机来.这种情况下,如果执行的顺序不对,很容易在执行migrate的时候出现数据库已存在的错误: django.db.utils.OperationalError: (1050, "Table 'xxx' already exists") 要处理这种情况,如果是数据表都已经存在了,在migrate时直接使用 --fake-initial 来处理 python ma

  • Django 构建模板form表单的两种方法

    通常情况下,我们想构建一张表单时会在模板文件login.html中写入 <form action="/your-name/" method="post"> <label for="your_name">Your name: </label> <input id="your_name" type="text" name="your_name" va

  • Python的Django框架中forms表单类的使用方法详解

    Form表单的功能 自动生成HTML表单元素 检查表单数据的合法性 如果验证错误,重新显示表单(数据不会重置) 数据类型转换(字符类型的数据转换成相应的Python类型) Form相关的对象包括 Widget:用来渲染成HTML元素的工具,如:forms.Textarea对应HTML中的<textarea>标签 Field:Form对象中的一个字段,如:EmailField表示email字段,如果这个字段不是有效的email格式,就会产生错误. Form:一系列Field对象的集合,负责验证和

  • Mac安装软件时提示已损坏的完美解决方法

    目录 Mac安装软件时提示已损坏的解决方法 原因 解决方法 Mac安装软件时提示已损坏的解决方法 从网上下载的SecureCRT.Principle等设计软件,以及输入法等常用软件,安装时可能会提示“已损坏,移至废纸篓”这类信息,根本无法打开.如下图:这不是文件的问题,是系统限制的原因. 原因 新系统(macOS Sierra 10.12.X以上)加强了安全机制默认不允许用户自行下载安装应用程序,只能从Mac App Store里安装应用. 解决方法 步骤一:打开终端 步骤二:输入代码 sudo

  • Django中Migrate和Makemigrations实操详解

    目录 一.前言 二.migrate和makemigrations详解和实操 1. makemigrations 2. 在协同开发的情况下,有冲突的迁移文件时如何解决? 3. migrate 4. 迁移报错怎么办? 三.迁移生成的外键约束有必要吗 四.反向迁移-inspectdb 一.前言 当我们在django中添加或修改了数据库model后,一般需要执行makemigrations.migrate把我们的model类生成相应的数据库表,或修改对应的表结构.这是非常方便的. 但我们在实际使用中执行

  • django 删除数据库表后重新同步的方法

    由于项目需要,最近在用基于Python语言的一个后端框架Django开发web应用.不得不说,Django继承了Python的简洁性,用它来开发web应用简单清爽,不同于从前的SSH框架,需要单独配置每个框架,还需要通过配置将各个框架集合起来,Django就集成了SSH三个框架的功能,只需要配置好这一个框架,整个后端开发流程全部可以完成,并且配置过程简单易学,这就大大降低了程序员的使用复杂度,可以将更多的精力集中于写出好的代码,而不是纠结于工具的使用. 闲言少叙,现在就来说一说我遇到的问题和解决

  • js检测离开或刷新页面时表单数据是否更改的方法

    本文实例讲述了js检测离开或刷新页面时表单数据是否更改的方法.分享给大家供大家参考,具体如下: function formIsDirty(form) { for (var i = 0; i < form.elements.length; i++) { var element = form.elements[i]; var type = element.type; if (type == "checkbox" || type == "radio") { if (

  • django连接oracle时setting 配置方法

    下一步是将新创建的应用程序与项目相关联.为此,您需要编辑 myproj 文件夹中的 settings.py 文件,将字符串"myproj.myapp"追加到 INSTALLED_APPS 字节组中,如下所示: INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'myproj.myapp' )

  • Django ManyToManyField 跨越中间表查询的方法

    1.在 django 表中用到了 manytomany 生成了中间表 pyclub_article_column from django.db import models # Create your models here. class Column(models.Model): id = models.AutoField(u'序号',primary_key=True,auto_created=True) name = models.CharField(u'名字',max_length=100)

随机推荐