Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从django项目(及其所有表)中删除应用程序

如何从django项目(及其所有表)中删除应用程序
EN

Stack Overflow用户
提问于 2016-03-02 02:57:06
回答 2查看 12.6K关注 0票数 13

我想从django项目中删除一个应用程序。

我想移除

  • 应用程序的表
  • 内容类型
  • 这些内容类型的外键用法

运行manage.py migrate app_to_remove zero不起作用:

代码语言:javascript
运行
AI代码解释
复制
django.db.migrations.migration.IrreversibleError: 
Operation <RunPython <function forwards_func at 0x7ff76075d668>> in
            fooapp.0007_add_bar is not reversible

我想有几次迁徙是不可逆的.

EN

回答 2

Stack Overflow用户

发布于 2016-03-02 02:57:06

首先:删除代码中的引用

  • app_to_remove中删除settings.INSTALLED_APPS
  • 删除urls.py或其他地方的其他引用

第二:清理数据库

为django-项目创建一个空迁移:

代码语言:javascript
运行
AI代码解释
复制
manage.py makemigrations your_django_project --empty

编辑文件。下面是一个模板:

代码语言:javascript
运行
AI代码解释
复制
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('your_django_project', '0001_initial'),
    ]

    operations = [
        migrations.RunSQL('''
        drop table if exists app_to_remove_table1;
        drop table if exists app_to_remove_table2;
        ....
        delete from auth_permission where content_type_id in (select id from django_content_type where app_label = '{app_label}');
        delete from django_admin_log where content_type_id in (select id from django_content_type where app_label = '{app_label}');
        delete from django_content_type where app_label = '{app_label}';
        delete from django_migrations where app='{app_label}';
        '''.format(app_label='app_to_remove'))
    ]

运行迁移,运行测试。

关于“如果存在”的话:有两种情况:

  1. 生产系统:您想要删除表。
  2. 新的开发系统:这些系统从来没有这个应用程序,而且它们也没有这个表:-)
票数 22
EN

Stack Overflow用户

发布于 2020-10-07 04:15:52

注意:本指南成功地使用Django 3.1.1和Python3.8.2

您能尝试一下这个解决方案来先清理数据库和迁移吗?

步骤1:从_app/ itself s.py文件中删除表,但保留文件本身

步骤2:如果有,请检查文件admin.py中的寄存器

步骤3:创建迁移:

代码语言:javascript
运行
AI代码解释
复制
manage.py makemigrations your_app

步骤4:迁移到数据库:

代码语言:javascript
运行
AI代码解释
复制
manage.py migrate

您可以在我的示例中看到结果。

步骤5:删除您的应用程序/迁移文件夹中的所有文件

步骤6:删除表django_migrations中的迁移

代码语言:javascript
运行
AI代码解释
复制
python manage.py migrate --fake your_app zero

检查迁移情况:

python manage.py显示迁移

步骤7:然后您可以完全删除应用程序,检查引用,INSTALLED_APPS

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35745220

复制
相关文章
位、字节、字的区别
字(Word)代表计算机处理指令或数据的二进制数位数,是计算机进行数据存储和数据处理的运算的单位。
Lokinli
2023/03/09
6740
原子操作和互斥锁的区别
这个系列的文章里介绍了很多并发编程里经常用到的技术,除了Context、计时器、互斥锁还有通道外还有一种技术--原子操作在一些同步算法中会被用到。今天的文章里我们会简单了解一下Go语言里对原子操作的支持,然后探讨一下原子操作和互斥锁的区别。
KevinYan
2020/06/16
4.6K0
Jquery的属性操作和DOM操作
       3 val()    :     获取或设置表单内容    (原生JS使用value)
用户3159471
2018/09/13
1.4K0
Jquery的属性操作和DOM操作
SDRAM的操作和配置
在有的项目中我们需要扩展外扩SDRAM,所以需要操作SDRAM,以使用STM32H743主控芯片的FMC外设控制器为例子来说明,可以使用STM32CubeMX生成配置初始化代码,完了后需要添加一些代码才能保证SDRAM正常工作,本篇笔记主要介绍SDRAM的操作和读写。
用户1605515
2020/04/26
6920
比特、字节、字
计算机里的信息是以什么样的形式存在计算机里的呢?是不是说计算机里有一张纸,然后可以把信息写上去呢? 我想大家首先想到的硬盘……和内存。 这就是比特、字节和字的关系。
mwangblog
2018/07/04
3160
HTTP 1.0 和 HTTP 1.1 的主要区别是什么
HTTP 1.0 最早在网页中的使用是在 1996 年,那个时候只是使用一些较为简单的网页和网络请求上,而 HTTP 1.1 则在 1999 年才开始广泛应用于现在的各大浏览器网络请求中,同时 HTTP 1.1 也是当前使用最为广泛的 HTTP 协议。 两者的主要区别体现在:
happyJared
2019/06/20
4.1K0
常用的高防有哪几类?主要的区别是什么?
有一些用户受到DDOS攻击的时候,不知道自己该选择什么样的高防来防御攻击,墨者安全今天主要讲下常用的高防有哪几类?以及主要的区别?高防主要分为HTTPS高防、TCP高防、CDN高防、香港高防、海外高防。
墨者安全筱娜
2019/04/15
2.5K0
常用的高防有哪几类?主要的区别是什么?
NFS操作和部署
如果出现以上结果,表示服务端配置成功 最好在本地挂载一次,挂载成功在取消挂载,至少可以确认服务端配置正确,能够挂载 6) 设置开机自启动并检查
jackxiao
2021/11/16
5630
Cache 和 Buffer 都是缓存,主要区别是什么?
原文链接:https://www.zhihu.com/question/26190832/answer/830615125
业余草
2019/11/12
2750
Cache 和 Buffer 都是缓存,主要区别是什么?
提到这个问题,可能意味着题主意识到了两者的相关性。的确,他们确实有那么一些联系。
老钱
2019/09/25
1.6K0
Cache 和 Buffer 都是缓存,主要区别是什么?
Docker:镜像操作和容器操作
古时的风筝
2018/01/08
1K0
Cache 和 Buffer 都是缓存,主要区别是什么?
首先cache是缓存,buffer是缓冲,虽然翻译有那么一个字的不同,但这不是重点。
良月柒
2019/11/07
3610
css特殊操作和效果
(8) 渐变 background-image: repeating-linear-gradient(red, yellow 10%, green 20%);
前端小tips
2021/12/07
4250
css特殊操作和效果
java中的字节流和字符流的区别是什么?
java当中有两种流,一种是字节流(byte stream): 以1字节(8-bit)为单位进行读/写,一次处理一个字节。另一种是字符流(character stream):,以字符为单位,一次处理一个字符。
马克java社区
2021/05/06
4560
java中的字节流和字符流的区别是什么?
字节、字、bit、byte的关系
字 word 字节 byte 位 bit,来自英文bit,音译为“比特”,表示二进制位。 字长是指字的长度
全栈程序员站长
2022/09/01
3K0
Cache 和 Buffer 都是缓存,主要区别是什么?【转】
作者:Towser 链接:https://www.zhihu.com/question/26190832/answer/32387918 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 不知道为什么这问题突然火了,更新一个一句话总结:cache 是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到加快访问速度的作用。 而 buffer 的主要目的进行流量整形,把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的 I/O,以减少响应次数(比如从网上下电影
233333
2018/07/04
2K0
Nilearn中的基本操作和查看
Rose小哥今天给大家介绍一款用于神经成像工具Nilearn以及它的基本操作和数据保存查看。
脑机接口社区
2020/06/30
1.4K0
Nilearn中的基本操作和查看
Clojure文件操作和惰性序列
数据一般都是存储在纯文本文件当中,存储的形式多种多样。本文,我会介绍如何在Clojure中读取和写入这些数据。
lambeta
2018/08/17
3.2K0
Python列表常见操作和注意
常见操作 列表很常用,每一个元素之间用 , 隔开。 列表中的每一个元素可以是任意类型的数据 数字,字符串,列表,元组,集合,字典 列表可进行的操作 索引(从0开始)、切片、加、成员检查(in,not in),for循环。 Python 表达式 结果 描述 len([1, 2, 3]) 3 长度 [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合 ['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复 3 in [1, 2, 3] Tru
py3study
2020/01/19
4530
点击加载更多

相似问题

智能家居操作和DialogFlow操作之间的主要区别

10

伪操作和机器操作的区别?

12

Oozie >异步操作和同步操作之间的区别是什么?

16

Delphi字节操作和Java

11

增加虚拟字节的操作和函数

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档