【问题标题】:Django initialize database in a custom way when syncdbDjango在syncdb时以自定义方式初始化数据库
【发布时间】:2013-08-01 05:30:42
【问题描述】:

我在开发过程中使用 Django。每次我在模型中进行一些更改时,我都需要删除数据库并运行syncdb,这很烦人。为了测试的目的,我想在每次运行syncdb时自动将一些初始数据添加到数据库中。我试过将这类代码放在一个应用程序的__init__.py 中,但它会在创建数据库之前运行,处理异常有点烦人。没有更简洁的方法吗?

【问题讨论】:

标签: database django


【解决方案1】:

一旦您最初填充了数据库;使用dumpdata 命令创建一个fixture(数据的副本)。将其保存到文件中。然后使用loaddata 命令自动填充数据库。

假设您有一个名为 bookstore 的应用程序,您希望为其自动加载一系列书籍、作者等。

在数据库中添加一些记录后:

python django-admin.py dumpdata bookstore > initial.json

一旦您进行了一些更改或想要重新创建数据库:

python django-admin.py loaddata initial.json

南方不错,但为了这个目的它有点矫枉过正。

【讨论】:

  • 正是我以前所做的。那是最好的选择
【解决方案2】:

如果您需要更改数据库并且希望您的数据保持安全,那么SOUTH 是适合您的软件。

它管理数据库及其数据的变化。如果您有 South,则在进行更改时不需要删除数据库。它还具有数据库先前状态的备份,因此如果您想恢复,您可以。我建议你阅读它的文档。肯定会有帮助的。

【讨论】:

    猜你喜欢
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多