varchar列を追加アドレスに追加します
-
16-10-2019 - |
質問
いくつかのVarcharフィールドをSales/Order_Addressテーブルに追加しようとしていますが、列の定義エラーに対抗しています。
次のコードがあります。
$oInstaller->getConnection()
->addColumn(
$oInstaller->getTable('sales/order_address'),
'address_email',
array(
'nullable' => false,
'length' => 255,
'type' => Varien_Db_Ddl_Table::TYPE_VARCHAR,
'comment' => 'Company Email Address'
)
);
これにより、エラーが返されます。 [message:protected] => Invalid column definition data
使用するコードを変更した場合 Varien_Db_Ddl_Table::TYPE_INTEGER
次に、コードが実行され、列が追加されます。私は長さとnullable属性を削除しようとしましたが、役に立ちませんでした。
編集
スクリプトを更新すると、次のように更新されると、機能します。このエラーの原因を知っている人はいますか?
$oInstaller->getConnection()
->addColumn(
$oInstaller->getTable('sales/order_address'),
'address_email',
Varien_Db_Ddl_Table::TYPE_VARCHAR . '(255)'
);
解決
使用する TYPE_TEXT
. TYPE_VARCHAR
非推奨です(@see Varien_Db_Adapter_Pdo_Mysql::$_ddlColumnTypes
)
ストレージスペースについて心配しないでください。タイプを指定する場合 TYPE_TEXT
しかし、セット length
言いましょう 255
MagentoはMySQL列を作成します VARCHAR
タイプ。
所属していません magento.stackexchange