我正在尝试重命名Magento中的自定义属性,下面的代码添加了我只需要使用Magento安装程序脚本删除的等效属性:
<?php
$installer = $this;
$installer->startSetup();
$installer->addAttribute("customer", "is_school", array(
"type" => "int",
"backend" => "",
"label" => "Organisation Type?",
"input" => "int",
"source" => "",
"visible" => false,
"required" => false,
"default" => "",
"frontend" => "",
"unique" => false,
"note" => ""
));
$installer->getConnection()->addColumn($installer->getTable('sales/quote'), 'is_school', 'int(11)');
$installer->getConnection()->addColumn($installer->getTable('sales/order'), 'is_school', 'int(11)');
// need code to rename these two column above from is_school to 'org_type'
$installer->endSetup();
$installer->getConnection()
->changeColumn($tableName, $oldColumnName, $newColumnName,$definition);
,
`changeColumn` method is used to modify and rename existing column in the table. It has such parameters:
$tableName - the table name that should be modified
$oldColumnName- the old name of the column, that should be renamed and modified
$newColumnName- a new name of the column
$definition - a new definition of the column (INT(10), DECIMAL(12,4), etc)
查看更多信息
-
addColumn()
方法向现有表添加新列。它有这样的参数:-
$tableName
—需要修改的表名 -
$columnName
—应该添加的列的名称 -
$definition
-列(INT(10)
,DECIMAL(12,4)
等)的定义
-
-
addConstraint()
方法创建一个新的约束外键。它有这样的参数-
$fkName
-前键名,每个数据库应该是唯一的,如果你没有指定FK_
前缀,它将被自动添加 -
$tableName
-添加外键的表名 -
$columnName
—应该引用到另一个表的列名,如果您有复杂的外键,使用逗号指定多个列 -
$refTableName
-将被处理的外表名 -
$refColumnName
—外表 中的列名 -
$onDelete
-在外表中删除行的动作。可以是空字符串(不做任何事),cascade
,set null
。该字段为可选字段,如果不指定,将使用cascade
的值。 -
$onUpdate
外表行键更新的动作。可以是空字符串(不做任何事),cascade
,set null
。该字段为可选字段,如果不指定,将使用cascade
的值。 -
$purge
-启用清除添加外键后的行的标志(例如,删除未引用的记录器)
-
-
addKey()
方法用于向表中添加索引。它有这样的参数:-
$tableName
-要添加索引的表名 -
$indexName
-索引名称 -
$fields
-索引 中使用的列名 -
$indexType
-索引类型。取值为:index
、unique
、primary
、fulltext
。该参数为可选参数,因此默认值为index
-
-
dropColumn()
方法用于从现有表中删除列。它有这样的参数:-
$tableName
-需要修改的表名 -
$columnName
-应该删除的列的名称
-
-
dropForeignKey()
方法用于删除前键。它有这样的参数:-
$tableName
-删除外键的表名 -
$fkName
-前密钥名称
-
-
dropKey()
方法用于删除表索引。它有这样的参数:-
$tableName
-要删除索引的表名 -
$keyName
-索引名称
-
-
modifyColumn
方法用于修改表中已有的列。它有这样的参数:-
$tableName
-需要修改的表名 -
$columnName
-列的名称,应该重命名为 -
$definition
-列的新定义(INT(10)
,DECIMAL(12,4)
等)
-
-
changeColumn
方法用于修改和重命名表中已有的列。它有这样的参数:-
$tableName
-需要修改的表名 -
$oldColumnName
-列的旧名称,应该重命名和修改 -
$newColumnName
-列的新名称 -
$definition
-列的新定义(INT(10)
,DECIMAL(12,4)
等)
-
-
changeTableEngine
方法用于更改表引擎,例如从MyISAM更改为InnoDB。它有这样的参数:-
$tableName
-表名 -
$engine
-新引擎名称(MEMORY
,MyISAM
,InnoDB
等)
-
如果您有任何疑问请告诉我