我能够使用以下步骤重置Django PostgreSQL数据库:
我目前正在对我的模型进行更改并测试每个更改。我没有任何需要保留的数据。当迁移不起作用时,是否有比上述更简单的方法来重置数据库?
我至少想用其他东西替换第2步,以便我可以跳过第3-5步。
答案 0 :(得分:20)
最简单的方法可能是重新创建整个数据库。在Ubuntu中,它看起来像这样:
sudo su postgres
psql
drop database your_database_name;
create database your_database_name with owner user_you_use_in_django;
\q
exit
那就是它。你有干净的数据库。要准备好,您必须使用python manage.py migrate
运行迁移。
如果您单独处理项目,可以删除并重新创建迁移(如果需要)。
答案 1 :(得分:2)
使用Python
from django.db import connection
with connection.cursor() as cursor:
cursor.execute("DROP SCHEMA public CASCADE;")
cursor.execute("CREATE SCHEMA public;")
然后
python manage.py migrate
答案 2 :(得分:0)
如果您使用的是docker / composer,请先发出docker-compose down
,然后再发出migrate
。
答案 3 :(得分:-1)
我不明白为什么您认为需要删除迁移或数据库。迁移的全部意义在于他们以前所未有的为基础;你永远不需要删除并重新开始。每次进行更改时都要做makemigrations,并且一系列的迁移应该始终有效。
稍后,您可能希望将一组迁移压缩为一个,为了速度,本机再次支持。但永远不要删除已经运行的迁移。
答案 4 :(得分:-1)
首先,您需要从项目中删除迁移文件。然后使用终端窗口运行psql数据库(确保与数据库和项目相关的所有内容都应关闭,以免任何db实例正在运行)。 然后点击以下链接,从终端窗口https://www.postgresqltutorial.com/postgresql-drop-database/
中删除数据库希望这可以回答问题。我本人也遇到了同样的问题,此步骤已解决了该问题。开发愉快!