如何使用数据库将已经内置的Magento项目加载到localhost?

时间:2015-04-16 11:38:58

标签: php mysql magento

我必须自定义已经在magento项目中构建的一些东西。我复制了源文件并粘贴在htdocs文件夹中并将sql文件加载到数据库中。修改了位于app / etc / local.xml文件夹中的xml文件中的主机,用户名,密码和dbname。具体如下

<config>
<global>
    <install>
        <date><![CDATA[Thu, 20 Dec 2012 04:20:32 +0000]]></date>
    </install>
    <crypt>
        <key><![CDATA[1dba174377df948cc045234de2d2d959]]></key>
    </crypt>
    <disable_local_modules>false</disable_local_modules>
    <resources>
        <db>
            <table_prefix><![CDATA[]]></table_prefix>
        </db>
        <default_setup>
            <connection>
                <host><![CDATA[localhost]]></host>
                <username><![CDATA[root]]></username>
                <password><![CDATA[]]></password>

                <dbname><![CDATA[btrweb]]></dbname>
                <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
                <model><![CDATA[mysql4]]></model>
                <type><![CDATA[pdo_mysql]]></type>
                <pdoType><![CDATA[]]></pdoType>
                <active>1</active>
            </connection>
        </default_setup>
    </resources>
    <session_save><![CDATA[files]]></session_save>
</global>
<admin>
    <routers>
        <adminhtml>
            <args>
                <frontName><![CDATA[admin]]></frontName>
            </args>
        </adminhtml>
    </routers>
</admin>

现在当我将文件加载为localhost / btrweb(projectname)时,它会抛出一个错误,如

SQLSTATE [42S01]:基表或视图已存在:1050表&quot; directory_country&#39;已存在

请你帮我解决一下。

提前致谢。

1 个答案:

答案 0 :(得分:0)

首先,我应该说最好的方法是使用像Git这样的版本控制系统!通过这种方式,您可以在任何地方简单地克隆存储库。

在您的情况下,我认为您的问题是由于您在localhost数据库中移动(转储/导入)数据库的方式。通常在Magento中,每个模块(与DB交互)都拥有一个sql文件夹,其中包含该文件内的文件DB在该模块的历史记录中发生变化。此文件夹中的所有文件按顺序运行(在运行每个文件magento之后将其版本添加到表(名为: core_resource );这样,Magento知道哪个文件已经运行并避免重新运行它。您的情况Magento的目录模块 - &gt;(您可以在: core / Mage / Directory 中找到它)无法运行其中一个脚本,因此抛出该错误。您可以尝试恢复您的数据库(强烈推荐)或尝试这种方式:DELETE * FROM core_resource WHERE code = "directory_setup"(删除所有Magento缓存)。在第一次重新加载任何页面时,Magento将自动再次运行该sql文件夹中的所有脚本,这可能会解决您的问题。 / p>

PS:不要忘记你需要更新 core_config_data 表,使用 secure_url unsecure_url 来指向你的别名在localhost。