gpt4 book ai didi

database - CakePHP 的良好数据库迁移?

转载 作者:太空狗 更新时间:2023-10-30 01:40:49 24 4
gpt4 key购买 nike

我一直在为 CakePHP 尝试一些迁移脚本,但我遇到了各种形式的问题。

请向我提供有关您在现场使用并且知道有效的 Cake 迁移选项的建议。

我想要以下“功能”:

  • 支持 CakePHP 1.2(例如,只有在 1.3 稳定并且我的应用程序迁移到新代码库时,CakeDCs 迁移才是一个选项)
  • 支持(或至少不停止)具有不同数据库配置的模型。
  • 在 app/models 的子文件夹中支持模型
  • 在插件中支持模型
  • 支持不符合Cake约定的表(我有几个没有单一主键字段的特殊表需要保留)
  • 非常适合通过 Capistrano 和 Git 进行自动部署。

我不需要 rails 风格的版本化文件,一个与现有模式进行实时比较的 git 版本化模式文件就可以了。也就是说:我喜欢 Cake 中的 SchemaShell,除了它不符合我上面的大部分要求。

我看过并测试过:

最佳答案

在快速尝试 Juan 的插件和除 CakeDC 之外提到的所有其他插件之后,我将尝试用我的发现更新这个“主题”...因为我没有为 CakePHP 1.3 和迁移更新相关的应用程序插件需要 1.3

我必须注意,关于失败和插件对我不起作用的评论应该主要理解为“不适合我的需要”或“我在尝试时犯的错误”。在某种程度上,有些人可能会将此类评论解读为对文档进行修订的请求。我并不是说测试的插件本身就有缺陷、错误或损坏。我确信所有这些都在正确的环境和正确的工作流程中工作。

CakePHP 架构外壳

  • 有我喜欢的简单概念。架构链接到代码和用于管理其修订的 SCM。

  • 在某种程度上效果很好。那一点是:

  • 似乎不适合自动部署。 IE。 update 命令只能修改表,不能处理新的或删除的表。这些由它们自己的 shell 命令处理,使 Cap 式部署变得复杂。当脚本试图“改变”不存在的表时,使用新表运行更新也会产生错误。我确定这是有意为之还是我遇到的问题。 (在google群里问过,还没有回复)

CakeDC 迁移

  • 听起来他们采用了 Schema Shell 并“修复”了它。文档解释了一个稍微复杂的过程(至少要解释一下),但它可能会按照我的意愿工作。

YAML、joelmoss 和 juan 的迁移

  • 这些都共享版本化文件的 Rails 概念以及它们之间的“升级”和“降级”。我不太喜欢这个,因为在不对源代码执行相同操作的情况下更新或回滚架构迁移时,我看不到我的项目的情况。我也可以在无法在迁移脚本中迁移现有数据的情况下生活,因为我预见到这对我来说是非常罕见的事情。

  • 这些都希望我不会通过迁移脚本以外的任何其他方式接触数据库。我无法打开我最喜欢的 MySql-GUI 并玩弄直到我高兴,然后通过这些脚本生成“差异”。 (至少在我的简短测试中我没有找到记录的方法。)我必须手动将更改写入 YAML 或 php 文件。由于我是从一个包含大约 30 个表的现有项目开始的,所以我不喜欢手动重写该模式的想法。但是其中一些插件并没有为我的所有表格创建一个好的起点文件。这也可能是由于我的简短测试和/或无法找到此类功能的文档。我没有深入研究其中大部分的源代码。

我的下一步看起来是将我的项目更新到 CakePHP 1.3 并尝试使用最后一个插件。但我不知道什么时候才有时间。 (即不要让任何人屏住呼吸)

如果您认为我误解了这些插件的工作原理,并且可以提供关于如何让它们为我工作的建议。我很乐意回复评论。

关于database - CakePHP 的良好数据库迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2522372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com