清理掉不再使用的数据库表格在移除一个Django应用后?

huangapple go评论53阅读模式
英文:

Clean up unused database tables after removing a Django app?

问题

当我从我的INSTALLED_APPS列表中移除一个Django应用程序时,它不会删除旧的数据库表;运行./manage.py makemigrations不会检测到任何更改。除了自己进入数据库并删除旧表之外,是否有更好的方法可以在从我的Django项目卸载应用程序后清理未使用的表?

英文:

When I remove a Django app from my list of INSTALLED_APPS, it doesn't get rid of the old database tables; running ./manage.py makemigrations doesn't detect any changes.

Apart from going into the database myself and dropping the old tables, is there a better way to clean up unused tables after uninstalling an app from my Django project?

答案1

得分: 2

你可以通过指定zero来使用迁移命令进行此操作。
示例-

$ python manage.py migrate 应用程序名称 zero

这将安全地回滚数据库表。

相关文档

运行零迁移后,您可以从INSTALLED_APPS中移除该应用程序。

英文:

You can use migrate command by specifying a zero for this purpose.
Example-

$ python manage.py migrate appName zero

This will safely revert the database tables.

Relevant Doc

After running the zero migration, you may remove the app from INSTALLED_APPS

答案2

得分: 1

尝试:

./manage.py migrate --run-syncdb

它会自动删除与你移除的应用相关的表格。请注意,如果你已经对数据库进行了手动更改,需要在运行此命令之前备份它们。

另一个选项 是使用 "inspectdb" 命令。

  1. 首先从你的 "INSTALLED_APPS" 中移除该应用。
  2. 然后运行 ./manage.py inspectdb > models.py
  3. 在生成的 models.py 文件中移除属于你刚卸载的应用的模型。
  4. 运行 ./manage.py migrate --fake
英文:

Try:

./manage.py migrate --run-syncdb

It automatically deletes the tables concerning the app you removed. Take note that if you have already made manual changes to the database, you have to back them up before running this command.

Another option is to use the " inspectdb "command.

  1. First remove the app from your "INSTALLED_APPS"
  2. Then run ./manage.py inspectdb > models.py
  3. Remove the models in the generated models.py file that belong to the app you just uninstalled.
  4. Run ./manage.py migrate --fake

huangapple
  • 本文由 发表于 2023年3月8日 19:37:50
  • 转载请务必保留本文链接:https://go.coder-hub.com/75672536.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定