我一直在为CakePHP尝试一些迁移脚本,但是我遇到了所有这些或其他形式的问题。
请告诉我关于您实时使用并了解作品的Cake的迁移选项。
我想要以下“功能”:
我不需要rails样式的版本化文件一个git版本化的模式文件,它与现有模式进行实时比较。那就是:我喜欢Cake中的SchemaShell,除了它与我上面的大部分要求不兼容。
我看过并测试过:
答案 0 :(得分:4)
我会尝试使用我的发现更新这个“主题”,快速尝试Juan的插件和除CakeDC之外的所有其他人提到的...因为我没有更新CakePHP 1.3的相关应用程序和迁移插件需要1.3
我必须注意,关于失败和插件不适合我的评论应该主要理解为“不适合我的需要”或“我在尝试时犯下的错误”。在某种程度上,有些人可能会将此类评论视为对文件修订的请求。我并不暗示所测试的插件本身就存在缺陷,缺陷或损坏。我相信所有这些都能在适当的环境和适当的工作流程下工作。
CakePHP Schema Shell
我喜欢简单的概念吗? Schema链接到代码和用于管理其修订的SCM。
非常有用。那一点是:
似乎不适合自动部署。即update命令只能修改表,不能处理新表或删除表。这些由他们自己的shell命令处理,使得Cap式部署变得复杂。当脚本尝试“更改”不存在的表时,使用新表运行更新也会产生错误。我要注意,如果这是有意或我有问题。 (已经在google小组上询问过没有回复)
CakeDC迁移
YAML,joelmoss和juan的迁移
这些都分享了版本化文件的rails概念,以及它们之间的“upping”和“downing”。我更喜欢这个,因为在没有对源代码执行相同的情况下更新或回滚模式迁移时,我无法看到我的项目的情况。我也可以无法迁移迁移脚本中的现有数据,因为我预计这对我来说非常罕见。
这些都希望我不要通过迁移脚本以外的任何其他方式触摸数据库。我无法打开我最喜欢的MySql-GUI并玩到我很开心,然后通过这些脚本生成“差异”。 (至少我在简短的测试中没有找到记录的方法。)我必须手动编写YAML或php文件中的更改。由于我开始使用大约30个表的现有项目,所以我不喜欢手动重写该模式的想法。但是其中一些插件没有为我的所有表创建一个好的起始点文件。这也可能是由于我的简短测试和/或无法找到此类功能的文档。我没有深入研究其中大部分的源代码。
我的下一步是将我的项目更新到CakePHP 1.3并尝试最后一个插件。但我不知道我什么时候有时间。 (即没有人屏住呼吸)
如果您认为我误解了这些插件中的任何一个是如何工作的,并且可以提供如何使它们适合我的命中。我很乐意回复评论。
答案 1 :(得分:3)
如果你喜欢Rails迁移,请使用Rails迁移...看一下这个gem https://github.com/thuss/standalone-migrations。我在日常工作中使用这个gem和cakephp。
答案 2 :(得分:2)
我有一个插件可以进入CakePHP 1.2,你可以在http://github.com/jrbasso/migrations中看到
它使用蛋糕风格来制作所有东西。不使用yaml,使用对象来定义表。您可以毫无问题地从Cake导入模型......
答案 3 :(得分:1)
我已在生产环境中使用CakeDC migrations plugin用于1.3.x和2.x并且很高兴。在1.3.x版本中创建迁移有一些错误,但它们很容易修复。
答案 4 :(得分:0)
在此处使用3.x Migrations插件。
其他旧工具的所有问题都是按设计修复的。 它正在大力发展,并且每周都会获得更多功能和修复。
您还可以轻松地将新工具用于现有的1.x和2.x应用。 我顺便在how to use 3.x Migrations in 2.x apps发布了一篇帖子。