TYPO3条件ext_tables.sql依赖于现有表

时间:2013-09-29 13:31:53

标签: typo3

通常,如果您想为扩展程序扩展表格,请在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,both或者其他等等。用户可以在ext配置中选择它。

这有什么最好的做法吗?

1 个答案:

答案 0 :(得分:0)

为什么要这么麻烦?在没有安装扩展名tt_address的情况下创建表tt_address时,它不会伤害任何人。也许你想在ext_conf_template.txt上显示一个提示,你需要安装tt_address才能使用该功能。

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