通常,如果要扩展表以进行扩展,请在ext_tables.sql中使用类似以下的内容:

CREATE TABLE tt_address (
    tx_myext_field varchar(255) DEFAULT '' NOT NULL,
);


但是,如果您尚未安装tt_address,则无论如何都会创建该表。我可以预防吗?

如果您现在问为什么我要安装扩展名,以扩展另一个扩展名并希望防止插入表字段;)

以我为例,我想创建一个扩展,可以扩展fe_user,tt_address和其他表。但是我希望用户可以使用他想使用的方法。 fe_users,tt_address,两者或其他等等。用户可以在ext配置中选择此项,这是完美的。

有什么最佳实践吗?

最佳答案

何必呢?在未安装扩展名tt_address的情况下创建表tt_address时,不会伤害任何人。也许您想在ext_conf_template.txt上显示一个提示,您需要安装tt_address才能使用该功能。

计划B是在某些PHP代码中更改数据库表-后端模块或前端插件将是“最糟糕的做法”。但是制作更新脚本class.ext_update.php可以起作用,该脚本在添加字段之前检查表是否已经存在。但是,除了数据库更新外,还必须执行更新功能。

关于typo3 - TYPO3条件ext_tables.sql取决于现有表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19078604/

10-14 15:34
查看更多