2013-08-24 34 views
1

我想添加一些新的列到Joomla中的某些表,因为我需要将这些修复从开发迁移到生产我试图做到这一点干净的方式,更新通过文件系统。更新SQL没有为我的组件执行Joomla 2.5

我跟着一些关于此的教程,并做了以下工作。

我创建了文件夹更新/ sql,并将新的SQL文件与我的新版本(1.5)。 我更改了我的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); 

我测试了我直接对数据库进行查询Ase和它的工作,我错过了什么?

回答

2

简答 - Joomla!的数据库迁移工具只有在通过组件管理器上传新组件后才能执行。它不会检查每个$ _REQUEST上的迁移,这就是您的问题所暗示的。

再回应

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

部分是

我试图做到这一点的清洁方式,更新槽文件系统

虽然我同意你的看法,这将是干净的方法:的Joomla!想要你做Joomla的事情!方式;-)

关于Joomla的重要提示! SQL文件

SQL文件不能包含空调风格的注释(# comment here),并且必须包含这样-- comment here花了几个小时的调试自己的代码注释,而不得不重新运行升级约25倍,以找出其中数据库模式迁移失败。

评论可能支持/* Comment */风格的语法,但我还没有广泛地测试。因人而异。