1

そのため、Magento インストールを 1.3.2.1 から 1.7.0.2 にアップグレードしています。しかし、データベースを新しい形式に変換しようとすると、次のエラーが発生します。

a:5:{i:0;s:239:"Error in file: "/home/user/public_html/app/code/core/Mage/Customer/sql/customer_setup/mysql4-upgrade-1.4.0.0.7-1.4.0.0.8.php" - SQLSTATE[HY000]: General error: 1005 Can't create table 'user_new.customer_form_attribute' (errno: 150)";i:1;s:994:"#0 /home/user/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(645): Mage::exception('Mage_Core', 'Error in file: ...')
#1 /home/user/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(437): Mage_Core_Model_Resource_Setup->_modifyResourceDb('upgrade', '1.4.0.0.7', '1.6.2.0.1')
#2 /home/user/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(320): Mage_Core_Model_Resource_Setup->_upgradeResourceDb('1.4.0.0.7', '1.6.2.0.1')
#3 /home/user/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(235): Mage_Core_Model_Resource_Setup->applyUpdates()
#4 /home/user/public_html/app/code/core/Mage/Core/Model/App.php(417): Mage_Core_Model_Resource_Setup::applyAllUpdates()
#5 /home/user/public_html/app/code/core/Mage/Core/Model/App.php(343): Mage_Core_Model_App->_initModules()
#6 /home/user/public_html/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#7 /home/user/public_html/index.php(87): Mage::run('', 'store')
#8 {main}";s:3:"url";s:1:"/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";}

この問題を解決した人はいますか? グーグルは、同じ問題を抱えている人だけに答えを教えてくれません。

4

2 に答える 2

0

Magento を 1.3.2.1 から 1.7.0.2 にアップグレードするには長い道のりです。エラーはほとんど常に発生します。アップグレードの計画方法については言及していませんが、この質問では重要な役割を果たします。間違いなく、1.3 から 1.4 へ、1.5 から 1.6 から 1.7 へと段階的に移動する方が安全です。

データのバックアップを作成しましたか? はいの場合は、最初からすべてを開始することをお勧めします。

特に古いバージョンの Magento をアップグレードしたい場合は、ここでの軽微な問題は避けられません。

Magento を最新の状態にするための標準的な手順は次のとおりです。ストアを更新する別の方法を選択できるため、表示するだけです。

1) 何に直面しているかを知る:

特定のバージョンの Magento を最新のものにアップグレードする際に特別な点があるかどうか、Google で確認してください。他に何もないとしても、解決する必要がある問題に備えることができます。

2) ファイルをバックアップする

通常、次のように CLI から実行します: tar -cvvzf your_site_directory.tar.gz your_site_directory/ 2>error.log

3) データベースをバックアップする

次のように CLI から実行することもできます。

mysqldump -u THIS_IS_YOUR_USERNAME_FOR_DB -h localhost -pTHIS_IS_YOUR_USERNAME_FOR_DB my_database_name | gzip -9 > my_database_name.sql.gz

4) これらのファイルを新しい場所にコピーします

2 つのサーバー間でファイルを移動する必要がある場合、CLI で考えられる最も簡単な方法は次のとおりです。

scp /path_to_some_file/your_site_directory.tar.gz user@REMOTE_SERVER_ADDRESS:/some_dir_on_remote_server バックアップしたデータベースでも同じことができます

5) 次に、データベースを新しく作成したデータベースにインポートします。

a) my_database_name.sql.gz を抽出します

b) mysql –verbose –user=THIS_IS_YOUR_USERNAME –password=THIS_IS_YOUR_PASSWORD new_created_db < my_database_name.sql

6) 次の方法でファイルを抽出します。

tar -xvvzf your_site_directory.tar.gz これにより、すべてのファイルが現在のディレクトリに抽出されます

7) db テーブル core_config_data を編集し、サイトの新しいセキュア/非セキュア URL を設定します

8) 管理者からキャッシュを無効にします。

9) 次の場所にあるキャッシュとセッションのディレクトリを削除します: /var/cache /var/session

rm /your_path_to/var/session -R rm /your_path_to/var/cache -R

10) /downloader/pearlib ディレクトリにある「clean」bash スクリプトを実行します。

a) chmod +x clean を実行して、このスクリプトを実行できるようにします b) ./clean を実行してスクリプトを実行します

11) 最後に、Magento 管理者から Magento 接続マネージャーに移動します。この拡張機能を貼り付けて、Magento をアップグレードします: magento-core/Mage_All_Latestあなたのコードで。

12) あとはテストして、それらのファイルを本番サーバーに移動するだけです。

于 2013-01-04T11:11:45.340 に答える
0

Magento 1.3 のテーブルは MyISAM で、それ以降は InnoDB に変換されます。現在表示されている 150 エラー メッセージは、FK に関連しています。

MySQL が CREATE TABLE ステートメントからエラー番号 1005 を報告し、エラー メッセージがエラー 150 を参照している場合、外部キー制約が正しく形成されていないため、テーブルの作成に失敗しました。同様に、ALTER TABLE が失敗し、エラー 150 を参照する場合は、変更されたテーブルの外部キー定義が正しく形成されていないことを意味します。サーバーの最新の InnoDB 外部キー エラーの詳細な説明を表示するには、SHOW ENGINE INNODB STATUS を発行します。

ソース

于 2012-10-31T11:58:38.430 に答える