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