4

概述

我正在用 django 建立一个网站。我需要允许人们开始添加平面页面,并在管理员中设置一些设置。这些更改应该是确定的,因为该信息来自客户端。但是,我也在开发后端,因此将创建和迁移表。我将这些更改推送到集线器。

工具

django

混帐

postgres

问题

如何确保将在线站点的数据库更改下到我的笔记本电脑上,以及如何将我的数据库更改推送到实时站点,以便我们需要最少的协调?我熟悉 git hooks,所以这个选项正在发挥作用。

附录:

我想我知道可以通过管理员修改哪些表。真的不应该有太多的重叠。当我进一步考虑时,真正的危险在于推送的数据会覆盖他们所做的事情。

谢谢。

4

3 回答 3

2

你可能应该看看南方:

http://south.aeracode.org/

在我看来,如果你正在做某种持续集成系统,你可能会创建一个触发 South 的 git 钩子。

否则,每次推送时,您都必须自己手动执行迁移步骤。不要忘记张贴“网站正在维护中”的消息。;)

于 2009-10-29T19:43:42.093 回答
2

为了让您的架构更改到服务器,只需小心使用 South。如果您修改他们可能包含数据的任何表,请确保同时编写模式迁移和必要的数据迁移以保留其数据的意义。

为了将他们的更新数据返回给您(这似乎并不重要,但在您开发时使用最新的测试数据可能会很好),我通常只使用 Django 固定装置以及 dumpdata 和 loaddata 命令. 转储一个固定装置并将其提交到您的仓库很容易,然后在您的最后一个 loaddata。

您可以尝试使用 git hooks 来自动化其中的一些,但如果您想要自动化,我建议您尝试类似 Fabric 之类的东西。大部分这些东西不需要在每次推/拉时都运行(特别是,我通常不想频繁地转储新的数据固定装置)。

于 2009-10-30T02:55:37.007 回答
0

我建议您使用mk-table-sync将更改从实时服务器拉到您的笔记本电脑。mk-table-sync 需要很多参数,因此您可以使用fabric自动执行此过程。您基本上将创建一个结构函数,该函数在您要从服务器中提取的每个平板电脑上执行 mk-table-sync。

这意味着您不能自己进行 dabatase 更改,因为它们将被拉取覆盖。

您将对实时数据库进行的唯一更改是使用 South。您可以将代码推送到服务器,然后运行​​migrate来更新数据库模式。

于 2009-10-29T19:53:14.960 回答