代码之家  ›  专栏  ›  技术社区  ›  pbrodka

如何实现开发与生产数据库的同步

  •  39
  • pbrodka  · 技术社区  · 17 年前

    您知道任何同步两个数据库的应用程序吗?在开发过程中,有时需要添加一个或两个表行或新表或列。 通常我会在某个文件中编写每一个sql语句,在上传路径的过程中,我会在我的生产数据库中查看这些行(之前备份)。 我使用mySQL和postreSQL数据库。

    什么是你的实践,什么样的应用程序可以帮助你。

    13 回复  |  直到 17 年前
        1
  •  28
  •   whaley    15 年前

    你要求一个工具或应用程序的答案,但你真正需要的是一个过程的答案。这里的基本主题是,您应该对数据库DDL(和DML,如果需要)进行版本控制,并提供更改脚本,以便能够将数据库的任何版本更新到更高版本。

    Jeff Atwood提供并由K.Scott Allen撰写的这组链接详细解释了这应该是什么样的—而且它们比我在这里可能写得更好: http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html

        2
  •  5
  •   Iain Holder    17 年前

    有脚本(当然是在源代码管理下)你只会添加到底部。再加上从生产数据库到dev的定期恢复,您应该是金黄色的。如果你严格要求的话,这个方法很有效。

    否则我知道很多人在SQLServer上使用redgate。

        3
  •  5
  •   Patryk Kordylewski    17 年前

    Another PostgreSQL Diff Tool . 它可以非常快地区分两个SQL转储(在一个包含大约300个表、50个视图和500个存储过程的db上只需几秒钟)。因此,您可以很容易地找到您的更改,并获得一个可以执行的sql diff。

    从APGDiff页面:

    另一个PostgreSQL Diff工具是简单的PostgreSQL Diff工具,它对模式升级非常有用。该工具比较两个模式转储文件,并创建适合旧模式升级的输出文件(经过一些手工修改)。

        4
  •  5
  •   AlexJReid    17 年前

    对RedGate SQL Compare的另一个投票

    http://www.red-gate.com/products/SQL_Compare/index.htm

    编辑:抱歉,这似乎只是针对SQL Server。不过,如果有任何SQL Server用户有同样的问题,我肯定会推荐这个工具。

        5
  •  2
  •   Philippe Grondier    17 年前

    如果您为开发数据库编写SQL语句(我想,这是一系列DDL指令,如CREATE、ALTER和DROP),为什么不用“版本”索引将它们记录在表中来跟踪它们呢?然后您将能够:

    1. 制作一个小程序,通过将记录的指令发送到数据库,允许“自动”更新生产数据库。
        6
  •  1
  •   bob    17 年前

    我真的很喜欢 EMS tools .

    所有流行的数据库都有可用的工具,对于每种类型的数据库,您都有相同的用户体验。

    其中一个工具是数据库比较器。

        7
  •  1
  •   John Nicholas    15 年前

    蟾蜍

    红门一号也不错。

        8
  •  0
  •   friol    17 年前

    Siebel(CRM、Sales等管理产品)有一个内置的工具,用于将生产数据库与开发数据库(dev2prod)对齐。

    否则,您必须坚持使用手动执行的脚本。

        9
  •  0
  •   Colonel Sponsz    17 年前

    Navicat 具有处理此问题的结构同步向导。

        10
  •  0
  •   Black    17 年前

    我用 Hibernate . 它可以检测并自动创建丢失的表、列等。

        11
  •  0
  •   wimvds    15 年前

    通过使用 dbDeploy 或者类似的剧本。这将允许您跟踪架构更改,并根据需要升级/回滚架构。

        12
  •  0
  •   Mark Shust at M.academy    14 年前

    这是我为同步Magento数据库而编写的linux bash脚本。。。但您可以很容易地修改它以用于其他用途:)

    http://markshust.com/2011/09/08/syncing-magento-instance-production-development

        13
  •  0
  •   AKi    12 年前

    DBV -“数据库版本控制,简单易行!”(菲律宾比索)