joomla2.5 - 更新 sql 没有为我的组件 Joomla 2.5 执行

标签 joomla2.5 joomla-extensions

我正在尝试向 Joomla 中的某些表添加一些新列,因为我需要将这些修复从开发迁移到生产,所以我正在尝试以干净的方式执行此操作,通过文件系统进行更新。

我遵循了一些与此相关的教程并执行了以下操作。

我创建了 update/sql 文件夹,并在其中放入了新版本 (1.5) 的新 sql 文件。 我更改了 xml 文件中的版本号。 我刷新了后端的缓存。

这是我使用的代码:

我的版本:

<version>1.5</version>

更新节点:

<update>
        <schemas>
            <schemapath type="mysql">sql/updates/mysql</schemapath>
            <schemapath type="sqlsrv">sql/updates/sqlsrv</schemapath>
            <schemapath type="sqlazure">sql/updates/sqlazure</schemapath>
        </schemas>
</update>

sql文件:

ALTER TABLE `#__mycomponent` ADD `field` VARCHAR(255);

我直接针对数据库测试了我的查询并且它有效,我缺少什么?

最佳答案

简短的回答 - Joomla! 的数据库迁移工具仅在通过组件管理器上传新组件后才会执行这些操作。它不会检查每个 $_REQUEST 上的迁移,这就是您的问题所建议的。

更长的答案

确保通过组件管理器运行升级。简单地覆盖文件不会触发 Joomla 的迁移过程。检查 #__schemas 表中您的组件 ID,它将具有相应的数据库架构版本 #。如果该版本尚未增加,则不会应用迁移。

部分问题是

I am trying to do this the clean way, updates trough the filesystem

虽然我同意你的观点,但这将是干净的方式:Joomla!希望您做 Joomla! 的事情!方式;-)

关于 Joomla! 的重要说明! SQL 文件

SQL 文件不能包含 C 风格的注释(# comment here),并且必须包含这样的注释 -- comment here 花了几个小时调试我自己的代码,并且必须重新运行升级大约 25 次才能找出数据库架构迁移失败的位置。

注释可能支持 /* Comment */ 样式语法,但我还没有对其进行广泛的测试。 YMMV。

关于joomla2.5 - 更新 sql 没有为我的组件 Joomla 2.5 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18423081/

相关文章:

javascript - 在 joomla 中向 Tinymce 编辑器添加自定义格式

html - 背景图像不是来自 joomla 2.5 中的 css

javascript - 使内容的某些部分响应

PHP 将 ul 平均分成 3 列 Joomla 菜单模块

joomla - joomla 2.5如何获取组件区插件的params值?

php - Joomla:将变量传递给 getInput()

php - Joomla 2.5 最新文章来自类别链接

php - Joomla 检索模块中的当前路线

joomla - 为什么是 Joomla! K2不支持中文搜索?

joomla - 基于语言的安装描述