propel-gen insert-sql 不会丢失数据?

发布于 2024-09-29 15:32:08 字数 229 浏览 0 评论 0原文

制作

propel-gen insert-sql

是否可以在不丢失以前数据的情况下 ?这有什么技巧吗?

我通常只是在编辑 schema.xml 的表中添加或删除一些行,执行:

propel-gen
propel-gen sql
propel-gen insert-sql

这会清除所有数据,这很烦人!

Is it possible to make

propel-gen insert-sql

without losing previous data? Is there any hack for this?

I usually just add or remove some rows in a table editing schema.xml, executing:

propel-gen
propel-gen sql
propel-gen insert-sql

and this wipes out all the data, which is annoying!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜唯美灬不弃 2024-10-06 15:32:08

正如 Jan 上面所说,Propel 正在实现“迁移”功能,但更重要的是,它与“sql-diff”功能相结合,允许您生成用于更改表的 SQL(而不是删除和重新添加)。这两个功能要到 1.6 才会“正式”发布,但您可以通过 1.5.3 的开发版本获得它们。

新功能的简要文档

从 SVN 下载 1.5.3-devel(完成后将是 1.6)

As Jan said above, Propel is implementing a "migrate" feature, but more importantly, this is combined with an "sql-diff" feature that allows you to generate SQL for altering tables (versus dropping and re-adding). These two features won't be "officially" released until 1.6, but you can get them with the development version of 1.5.3.

Brief documentation of the new features

Download 1.5.3-devel from SVN (will be 1.6 when done)

埖埖迣鎅 2024-10-06 15:32:08

为了实现这一点,Propel 应该知道发生了什么变化并只执行这些变化。例如,如果您更改列的名称,Propel 只会看到新的架构,而无法知道您是刚刚更改了名称还是删除了旧列并添加了新列。

您想要将数据库从一个版本迁移或“更新”到另一版本。 Propel 1.6(尚未发布)将内置此功能,但有一个旧版 Symfony 插件,添加了简单的迁移支持。您自己编写 SQL 查询来更改数据库。这并不像您希望的那样自动化,但这可能意味着它仍然可以与当前版本的 Symfony 和 Propel 配合使用。

For this to work, Propel should know what has changed and only execute those changes. For example, if you change the name of a column, Propel only sees the new schema and has no way of knowing whether you just changed the name or deleted the old column and added a new one.

You want to migrate, or "update" your database from one version to another. Propel 1.6 (not yet released) will have this built-in, but there is an older Symfony plugin that adds simple migration support. You write the SQL queries to change the database yourself. This is not as automated as you might want, but it probably means that it will still work with the current version of Symfony and Propel.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文