【问题标题】:How to "reset" postgresql database?如何“重置”postgresql 数据库?
【发布时间】:2015-04-11 08:27:29
【问题描述】:

我正在尝试将我的 django 项目转移到生产环境中,因此我从使用 sqlite 切换到了 postgres。在我的开发环境中,每当我对模型进行更改或任何会显着改变数据库设置方式的事情时,我都会将我的 sqlite 文件拖到垃圾箱中,然后运行 ​​syncdb 来创建一个新的空文件(可能是不好的做法) .现在我正在使用 postgres,我想做同样的事情而不实际删除数据库。基本上我想知道是否有办法完全清空或清除它,然后运行 ​​syncdb 并重新开始?

我也欢迎任何可能引导我走上正确道路的替代建议,我对此很陌生。

【问题讨论】:

标签: django postgresql


【解决方案1】:

您可以使用flush。只需运行以下命令:

python manage.py flush

【讨论】:

  • 所以我可以对现有模型进行更改并添加新模型,然后只需使用 flush 命令和 syncdb?
  • 什么是“初始数据”
  • 你在使用flush时不需要使用syncdb。 Flush 清除 db 中的数据,但不清除结构
  • 链接失效
  • 是的,它应该适用于每个表,而不管任何数据库。
【解决方案2】:

首先,如果你有initial data in your database,你可以使用dumbpdata 命令:

python manage.py dumpdata > initial_data.json

对于特定的应用程序运行:

python manage.py dumpdata <app_name> > initial_data.json

第二次运行flush 命令清理你的数据库:

python manage.py flush

第三次也是最后一次,运行loaddata 命令将初始数据加载到数据库中,并通过运行createsuperuser 命令创建超级用户

python manage.py loaddata initial_data.json
python manage.py createsuperuser

【讨论】:

  • 什么是“初始数据”?我正在尝试删除所有数据,而不是特定的应用数据。
猜你喜欢
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 2020-04-06
  • 2017-02-13
  • 2021-08-03
  • 2010-09-13
  • 2021-06-18
  • 2016-04-07
相关资源
最近更新 更多