通常,如果要扩展表以进行扩展,请在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/