删除后如何重新创建数据库?

时间:2017-01-31 20:24:49

标签: python sql django postgresql

我使用python manage.py makemigrations myApppython manage.py migrate myApp命令在我的数据库中创建Postgres表。然后有人用SQL查询手动删除它们。

我可以使用终端命令重新创建这些没有数据的表吗?

1 个答案:

答案 0 :(得分:2)

这取决于。

他们删除了所有表吗?如果这样那很容易。只需重新运行

manage.py migrate. 

他们是否只删除了您通过迁移添加的新表? 还不错,进入django_migrations表,删除从该表创建已删除表的迁移条目,然后重新运行

manage.py migrate. 

当您运行makemigrations时,Django会创建迁移文件,但在触摸数据库时不会对其执行任何操作。

当您运行migrate命令时,Django会在数据库上运行alter table命令并在django_migrations表中添加一个条目,因此它知道哪些迁移已完成,哪些仍需要运行。

如果此人删除了一组与您的迁移不同步的随机表,那么它将变得一团糟,并且将涉及大量手动工作以确保您的迁移和数据库表保持同步。