Symfony Propel项目:如何在没有数据库重置的情况下升级架构?

时间:2010-02-05 19:49:12

标签: php symfony1 propel

我已将symfony项目部署到服务器,现在我想更改schema.yml内的模型而不重置其他不相关的数据库表并保留当前数据。 symfony推进项目是否有任何差异/升级功能?

2 个答案:

答案 0 :(得分:2)

查看sfPropelSqlDiffPlugin(可从插件存储库获得)。我已经使用了很长一段时间,它对我来说效果很好。它并不完美(例如,它不能很好地处理非标准的东西,比如在你的模式中指定一个sqltype),但它让我的生活变得更加轻松。

我更愿意这样做,而不是信任插件来执行diffed SQL的实际执行:

./ symfony propel:build-sql-diff

这将在您的数据目录中创建一个SQL文件,然后您可以在手动执行脚本之前检查/编辑该文件。

答案 1 :(得分:1)

您可以使用'propel:build-sql'命令生成sql。结果是一个有效的SQL文件,您可以自己导入。 在我们这个非常大的项目中,我们只是跟踪SQL本身。我们构建模型并生成SQL。然后我们将新生成的SQL复制到包含我们版本的SQL的文件中。请注意更改表而不是创建表的SQL,因为您必须自己手动更改该表。

从Symfony afaik无法做到。