Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何在Django项目中删除一个应用程序的表和syncdb?_Database_Django_Production Environment_Django Syncdb_Dev To Production - Fatal编程技术网

Database 如何在Django项目中删除一个应用程序的表和syncdb?

Database 如何在Django项目中删除一个应用程序的表和syncdb?,database,django,production-environment,django-syncdb,dev-to-production,Database,Django,Production Environment,Django Syncdb,Dev To Production,我在DjangoZoom上部署了一个Django应用程序。人们一直在注册,所以数据库中有用户 我想在项目中重组我的一个应用程序的数据库。我的计划是删除所有表,然后执行syncdb以建立新结构。然后,我将通过在生产数据库上安装本地创建的fixture,从站点添加所有内容 问题是我会在计划中丢失所有这些用户数据。我如何删除相关的表——那些我可以用fixture重新加载内容并保持auth表不变的表?请注意,在DjangoZoom上,我只能使用-noinput运行manage.py命令,无法直接访问数据

我在DjangoZoom上部署了一个Django应用程序。人们一直在注册,所以数据库中有用户

我想在项目中重组我的一个应用程序的数据库。我的计划是删除所有表,然后执行syncdb以建立新结构。然后,我将通过在生产数据库上安装本地创建的fixture,从站点添加所有内容

问题是我会在计划中丢失所有这些用户数据。我如何删除相关的表——那些我可以用fixture重新加载内容并保持auth表不变的表?请注意,在DjangoZoom上,我只能使用-noinput运行manage.py命令,无法直接访问数据库。此外,我的项目在Django 1.3中,因此不推荐使用manage.py reset app_name

我想我可以为此进行向南迁移,但这是一个相对简单的更改,因为我在Fixture中拥有所有数据,所以似乎不值得这么做。有什么建议吗?

只要做:

./manage.py reset appname

我最终实现了south for migrations,以更改DjangoZoom上的表,而不是尝试清除某些应用程序的表


通过使用south的schemamigration-auto为更改生成迁移,可以轻松地对现有数据库进行更改。此外,进行迁移使我能够保留项目中的大部分内容。

您可以尝试创建新表以及要使用的装置和模型,然后更改应用程序代码,以便将其插入到两个表中。这必然会更慢。然后,当你对新表满意时,只需删除旧表并删除旧模型/装置。我尝试过这样做,但它表示,在其他应用程序中,仍然存在与其他表的关系,因此无法删除该表,即使我也在这些应用程序上进行了重置。此外,Django文档说1.3中不推荐使用“重置”。