我正在尝试将我的Django项目移植到生产环境中,为此我从使用SQLite转移到了Postgres。在开发环境中,每当我更改模型或任何会显著改变数据库设置的内容时,我都会将我的SQLite文件直接删除并运行syncdb以创建一个新的空文件(可能是不好的做法)。现在我正在使用Postgres,并希望做到同样的事情,而不必实际删除数据库。基本上,我想知道是否有一种方法可以完全清空或清除数据库,然后只需运行syncdb并重新开始。
如果您有任何其他的建议,也欢迎提出,因为我对此非常的新手。
如果您有任何其他的建议,也欢迎提出,因为我对此非常的新手。
如果你的数据库中有初始数据,你可以使用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
如果刷新不起作用,您可以删除整个数据库。
进入Windows命令行。 如果服务器是“postgres”,数据库名称为“mydb”,则运行:
C:\> psql -U postgres
您将看到一个postgres-#提示符。接下来要关闭连接,请运行以下命令:
SELECT * FROM pg_stat_activity WHERE pg_stat_activity.datname='mydb'; SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';
一次性删除数据库:DROP DATABASE mydb;