1

我在 symfony 插件世界中迈出了第一步,但我有点迷茫……

我有一个带有数据库的实时应用程序。通常,当我需要一个新表或字段时,我会通过更新我的 schema.yml、调用 generate-migration-diff 和 build --all-classes --and-migrate symfony 命令来进行迁移。

今天,我需要安装一个插件(即 sfCombinePlugin)来缩小我的 js 和 css 脚本。我通过 symfony plugin:install 命令安装了它,没关系,我的所有文件都在 plugins 文件夹中。我按照自述文件,它说要构建模型,所以我运行命令教义:构建模型,文件夹 sfCombinePlugin 出现在我的 lib/model/doctrine 文件夹中。

但现在我被卡住了,我需要在我的数据库中添加表。在自述文件中它说,通过教义:build-sql 生成 sql,并在我的数据库中运行生成的 sql。但我看到一些问题来了...

它会通过运行 sql 文件来擦除我的数据吗?我很确定它会,因为它从头开始创建数据库......

所以,我想像往常一样使用迁移。但是当我运行 generate-migration-diff 时,它没有考虑到插件文件夹中的 schema.yml。这是正常的还是错误的?

我曾想过将 schema.yml 插件的内容复制到 schema.yml 应用程序文件中,但我不确定这是一个好主意,因为模型类不会在 sfCombinePlugin 文件夹中,而是在通用模型中文件夹。而且听起来不太好。

4

1 回答 1

0

build-sql将只创建 SQL 文件;insert-sql会覆盖数据库。当我像这样添加表时,我只是查看了生成的 SQLdata/sql并手动添加了表。s2 内置了迁移,IIRC。对于 s1.4,请查看http://www.symfony-project.org/plugins/sfPropelMigrationsLightPlugin - 刚刚通过谷歌找到,我从未使用过它。

于 2011-10-27T15:47:50.537 回答