【问题标题】:How do I re-create databases after they were deleted?删除后如何重新创建数据库?
【发布时间】:2017-06-17 10:28:37
【问题描述】:

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

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

【问题讨论】:

    标签: python sql django postgresql


    【解决方案1】:

    这取决于。

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

    manage.py migrate. 
    

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

    manage.py migrate. 
    

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

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

    如果此人随机删除了一组与您的迁移不同步的表,那将是一团糟,并且需要进行大量手动工作以确保您的迁移和数据库表同步。

    【讨论】:

    • 我的困境是第二个例子。
    • 在删除之前复制迁移表以防万一。
    猜你喜欢
    • 2021-08-11
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 2020-07-05
    • 2021-08-27
    相关资源
    最近更新 更多