当前位置:  开发笔记 > 编程语言 > 正文

如何使用Perl将数据库置于版本控制之下?

如何解决《如何使用Perl将数据库置于版本控制之下?》经验,为你挑选了2个好方法。

我一直在寻找在版本控制下获取数据库模式的选项.似乎Ruby人员已经获得了Rails迁移,并且.NET人员有一些选项(例如this,this和this).Perl怎么样?

虽然它提到了DBIX :: Migration :: Directories,但我在PerlMonks 上看到了这个线程并没有多少.有人真的在使用这个模块或其他模块吗?或者您是否推出自己的数据库迁移解决方案?

无偿的细节:

我们大多数情况下使用DBIx :: Class

我们使用MySQL

我们使用SVN

Ovid.. 7

在工作中,我们使用DBIx :: Migration的修改版本(它有一些限制,例如不超过10次迁移).然后,您具有从数据库转储的核心模式,并且当版本号过低时,您将使用迁移模式目录中的迁移来升级数据库.

我也强烈推荐数据库重构书.除此之外,它还将为您提供出色的安全管理技术,如果您需要回滚,则不会丢失数据(例如,当您删除您认为不需要的列时).

为了帮助它建议的自动弃用计划,我编写了Devel :: Deprecate,这样您就不需要记住何时进行弃用.您的代码会为您大声抱怨(并且仅在测试中,而不是在生产中).

重要提示:您将定期发现您使用此技术应用了这么多数据库迁移级别,有时您需要"提升"最小基本迁移,因为重建数据库需要很长时间.只需在所需的迁移级别进行数据库的新转储,并删除小于或等于该级别的所有迁移.

更新:快进几年,今天我推荐 sqitch.它是从头开始设计的,用于处理将数据库置于版本控制之下的情况,而无需将您与特定的编程语言或VCS联系起来.



1> Ovid..:

在工作中,我们使用DBIx :: Migration的修改版本(它有一些限制,例如不超过10次迁移).然后,您具有从数据库转储的核心模式,并且当版本号过低时,您将使用迁移模式目录中的迁移来升级数据库.

我也强烈推荐数据库重构书.除此之外,它还将为您提供出色的安全管理技术,如果您需要回滚,则不会丢失数据(例如,当您删除您认为不需要的列时).

为了帮助它建议的自动弃用计划,我编写了Devel :: Deprecate,这样您就不需要记住何时进行弃用.您的代码会为您大声抱怨(并且仅在测试中,而不是在生产中).

重要提示:您将定期发现您使用此技术应用了这么多数据库迁移级别,有时您需要"提升"最小基本迁移,因为重建数据库需要很长时间.只需在所需的迁移级别进行数据库的新转储,并删除小于或等于该级别的所有迁移.

更新:快进几年,今天我推荐 sqitch.它是从头开始设计的,用于处理将数据库置于版本控制之下的情况,而无需将您与特定的编程语言或VCS联系起来.



2> Brian Philli..:

一个非常有趣的项目仍然可能有点年轻可靠依赖的是Adam Kennedy的ORLite :: Migrate,它从Rails迁移中获取灵感.他在use.perl.org上写了一篇关于他的计划的非常有趣的期刊,我希望将来能够关注它.

看来这个软件包目前只适用于SQLite,但我认为Adam计划在未来将其构建为更加数据库不可知.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有