Jump to content

Why can I not import a database to a newly installed prestashop?


Recommended Posts

Why can not I import a database to a newly installed prestashop?
When I install PrestaShop should I disclose a prefix and I write it prefixnummer which the data is located in the database, it is not possible to move on before I have given a second prefixnummer PrestaShop can not use the data databsen because they do not have the same prefix.
What do I do to get PrestaShop and database work together on the same prefix?

mfj31dk

Edited by mfj31dk (see edit history)
Link to comment
Share on other sites

How are you trying to import ? Are you using csv-import on back-office ?

 

With Hedi-SQL for example you can by opening two instances import directly data from one database to another, independent of the prefix of database. But best is to maintain ps_ as some third party modules only add data if they find ps_xxx. By renaming it is possible to get some problems.

Link to comment
Share on other sites

If you export by this way databases must be identically in structure and also prefix. Another way is to export each Table by itself and than import by mapping the fields of each table to your new database.

 

For better maintenance of this I suggest you use another tool as phpMyAdmin. There is for ex. Heidi SQL or presta store manager (free for a period of 30 days) on where you can habdle each table and each field for export/import. A complete SQL-gzip is not flexible enough.

Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

Another thing you need to know. By each install Prestashop set security hashes in the database and also in your /config/config.inc.php (Cookie key and rinjdael or blowfish key) This pair must be always the same, so what I want to say: you cannot make a new install and than import your old database to this install. You must change the keys on your new install /config/config.inc.php to the old keys from old install, for to have database working.

Link to comment
Share on other sites

Thanks for the reply, but I did not find anything that matches the prefix as the database user: PS_5 - I enclose config.inc file and hope that you might want to tell me what to look for.
The problem for me is that I'm not a PHP-mann - just a little bit

 

<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2013 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

require_once(dirname(__FILE__).'/defines.inc.php');
$start_time = microtime(true);

/* SSL configuration */
define('_PS_SSL_PORT_', 443);

/* Improve PHP configuration to prevent issues */
ini_set('upload_max_filesize', '100M');
ini_set('default_charset', 'utf-8');
ini_set('magic_quotes_runtime', 0);

/* correct Apache charset (except if it's too late */
if (!headers_sent())
    header('Content-Type: text/html; charset=utf-8');

/* No settings file? goto installer... */
if (!file_exists(dirname(__FILE__).'/settings.inc.php'))
{
    $dir = ((substr($_SERVER['REQUEST_URI'], -1) == '/' || is_dir($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : dirname($_SERVER['REQUEST_URI']).'/');
    if (!file_exists(dirname(__FILE__).'/../install'))
        die('Error: "install" directory is missing');
    header('Location: install/');
    exit;
}

require_once(dirname(__FILE__).'/settings.inc.php');

require_once(dirname(__FILE__).'/autoload.php');

if (_PS_DEBUG_PROFILING_)
{
    include_once(_PS_TOOL_DIR_.'profiling/Controller.php');
    include_once(_PS_TOOL_DIR_.'profiling/ObjectModel.php');
    include_once(_PS_TOOL_DIR_.'profiling/Hook.php');
    include_once(_PS_TOOL_DIR_.'profiling/Db.php');
    include_once(_PS_TOOL_DIR_.'profiling/Tools.php');
}

if (Tools::isPHPCLI())
    Tools::argvToGET($argc, $argv);

/* Redefine REQUEST_URI if empty (on some webservers...) */
if (!isset($_SERVER['REQUEST_URI']) || empty($_SERVER['REQUEST_URI']))
{
    if (!isset($_SERVER['SCRIPT_NAME']) && isset($_SERVER['SCRIPT_FILENAME']))
        $_SERVER['SCRIPT_NAME'] = $_SERVER['SCRIPT_FILENAME'];
    if (isset($_SERVER['SCRIPT_NAME']))
    {
        if (basename($_SERVER['SCRIPT_NAME']) == 'index.php' && empty($_SERVER['QUERY_STRING']))
            $_SERVER['REQUEST_URI'] = dirname($_SERVER['SCRIPT_NAME']).'/';
        else
        {
            $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
            if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']))
                $_SERVER['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
        }
    }
}

/* Trying to redefine HTTP_HOST if empty (on some webservers...) */
if (!isset($_SERVER['HTTP_HOST']) || empty($_SERVER['HTTP_HOST']))
    $_SERVER['HTTP_HOST'] = @getenv('HTTP_HOST');
    
$context = Context::getContext();

/* Initialize the current Shop */
try
{
    $context->shop = Shop::initialize();
    if (Tools::isEmpty($theme_name = $context->shop->getTheme()) && !defined('_PS_ADMIN_DIR_'))
         throw new PrestaShopException(Tools::displayError('Current theme unselected. Please check your theme configuration.'));
}
catch (PrestaShopException $e)
{
    $e->displayMessage();
}

define('_THEME_NAME_', $theme_name);
define('__PS_BASE_URI__', $context->shop->getBaseURI());

/* Include all defines related to base uri and theme name */
require_once(dirname(__FILE__).'/defines_uri.inc.php');

global $_MODULES;
$_MODULES = array();

/* Load configuration */
Configuration::loadConfiguration();

/* Load all languages */
Language::loadLanguages();

/* Loading default country */
$defaultCountry = new Country(Configuration::get('PS_COUNTRY_DEFAULT'), Configuration::get('PS_LANG_DEFAULT'));
$context->country = $defaultCountry;

/* It is not safe to rely on the system's timezone settings, and this would generate a PHP Strict Standards notice. */
@date_default_timezone_set(Configuration::get('PS_TIMEZONE'));

/* Set locales */
$locale = strtolower(Configuration::get('PS_LOCALE_LANGUAGE')).'_'.strtoupper(Configuration::get('PS_LOCALE_COUNTRY').'.UTF-8');
setlocale(LC_COLLATE, $locale);
setlocale(LC_CTYPE, $locale);
setlocale(LC_TIME, $locale);
setlocale(LC_NUMERIC, 'en_US.UTF-8');

/* Instantiate cookie */


$cookie_lifetime = (int)(defined('_PS_ADMIN_DIR_') ? Configuration::get('PS_COOKIE_LIFETIME_BO') : Configuration::get('PS_COOKIE_LIFETIME_FO'));
$cookie_lifetime = time() + (max($cookie_lifetime, 1) * 3600);

if (defined('_PS_ADMIN_DIR_'))
    $cookie = new Cookie('psAdmin', '', $cookie_lifetime);
else
{
    if ($context->shop->getGroup()->share_order)
        $cookie = new Cookie('ps-sg'.$context->shop->getGroup()->id, '', $cookie_lifetime, $context->shop->getUrlsSharedCart());
    else
    {
        $domains = null;
        if ($context->shop->domain != $context->shop->domain_ssl)
          $domains = array($context->shop->domain_ssl, $context->shop->domain);
        
        $cookie = new Cookie('ps-s'.$context->shop->id, '', $cookie_lifetime, $domains);
    }
}

$context->cookie = $cookie;

/* Create employee if in BO, customer else */
if (defined('_PS_ADMIN_DIR_'))
{
    $employee = new Employee($cookie->id_employee);
    $context->employee = $employee;

    /* Auth on shops are recached after employee assignation */
    if ($employee->id_profile != _PS_ADMIN_PROFILE_)
        Shop::cacheShops(true);

    $cookie->id_lang = (int)$employee->id_lang;
}

/* if the language stored in the cookie is not available language, use default language */
if (isset($cookie->id_lang) && $cookie->id_lang)
    $language = new Language($cookie->id_lang);
if (!isset($language) || !Validate::isLoadedObject($language))
    $language = new Language(Configuration::get('PS_LANG_DEFAULT'));
$context->language = $language;

if (!defined('_PS_ADMIN_DIR_'))
{
    if (isset($cookie->id_customer) && (int)$cookie->id_customer)
    {
        $customer = new Customer($cookie->id_customer);
        if(!Validate::isLoadedObject($customer))
            $customer->logout();
        else
        {
            $customer->logged = $cookie->logged;

            if ($customer->id_lang != $context->language->id)
            {
                $customer->id_lang = $context->language->id;
                $customer->update();
            }
        }
    }

    if (!isset($customer) || !Validate::isLoadedObject($customer))
    {
        $customer = new Customer();
        
        // Change the default group
        if (Group::isFeatureActive())
            $customer->id_default_group = Configuration::get('PS_UNIDENTIFIED_GROUP');
    }
    $customer->id_guest = $cookie->id_guest;
    $context->customer = $customer;
}

/* Link should also be initialized in the context here for retrocompatibility */

$context->link = new Link($https_link, $https_link);

/**
 * @deprecated : these defines are going to be deleted on 1.6 version of Prestashop
 * USE : Configuration::get() method in order to getting the id of order state
 */
define('_PS_OS_CHEQUE_',      Configuration::get('PS_OS_CHEQUE'));
define('_PS_OS_PAYMENT_',     Configuration::get('PS_OS_PAYMENT'));
define('_PS_OS_PREPARATION_', Configuration::get('PS_OS_PREPARATION'));
define('_PS_OS_SHIPPING_',    Configuration::get('PS_OS_SHIPPING'));
define('_PS_OS_DELIVERED_',   Configuration::get('PS_OS_DELIVERED'));
define('_PS_OS_CANCELED_',    Configuration::get('PS_OS_CANCELED'));
define('_PS_OS_REFUND_',      Configuration::get('PS_OS_REFUND'));
define('_PS_OS_ERROR_',       Configuration::get('PS_OS_ERROR'));
define('_PS_OS_OUTOFSTOCK_',  Configuration::get('PS_OS_OUTOFSTOCK'));
define('_PS_OS_BANKWIRE_',    Configuration::get('PS_OS_BANKWIRE'));
define('_PS_OS_PAYPAL_',      Configuration::get('PS_OS_PAYPAL'));
define('_PS_OS_WS_PAYMENT_', Configuration::get('PS_OS_WS_PAYMENT'));

/* Get smarty */
require_once(dirname(__FILE__).'/smarty.config.inc.php');
$context->smarty = $smarty;
 

Link to comment
Share on other sites

Sorry I didn't catched what you mean. When you install Prestashop you can choose by yourself the prefix for your database. Perhaps you changed it to PS_5 there. You can change it, but I suggest to don't do it. Several foreign developers are coding modules with this fix ps_ prefix and when you install the module perhaps it will not find tables that should be extended by one or two fields, because it does not match.

 

I know for security it is better to rename the prefix, but on the other side you can have problems. I had this problem and therefore I advise you to don't make the same error, as I did.

Link to comment
Share on other sites




 









I can not create a prestashop if I specify the talebel prefix as the data in the database using - I have to enter a new prefix that is not in the database, with the result that the data in the database can not be found by my shop.





Link to comment
Share on other sites

Thank you very much - it worked, but only partially. 

The thing is that I have some problems with my original web page - ww.teknobiler.dk therefore I registered www.teknobiler.net with another provider which I would use as a working webpage. I created new installation of teknobiler.net complete with new PrestaShop and database - that is not the same provider. 

Now I've got the right database on teknobiler.net and it worked, BUT when the page on teknobiler.net finishes loading then it is the address of teknobiler.dk will be displayed. 

It's hard to describe but try it for yourself to look at www.teknobiler.net - I do not understand how it happens - can you tell me where I need to correct it.  

I hope you understand what I mean because I've had google to help with the translation. 

'Thank you very much

Link to comment
Share on other sites

 

 
I can not create a prestashop if I specify the talebel prefix as the data in the database using - I have to enter a new prefix that is not in the database, with the result that the data in the database can not be found by my shop.

 

yes because you are using the same database for new install. You should create a new database with a different name.

Link to comment
Share on other sites

For to use double shops you have very simple solutions. Simply put the second shop into a subfolder. If you are using different providers, so the problem is also not tragic. Simply change your hosts file on your local machine to the new IP (from second hoster). So you don't touch your live-shop and can work on another provider. Only after the project is ready you than change the IP on domain dns. It is not necessary to buy another domain for doubling it.

 

Change hosts:

 

Windows/system32(or64)/drivers/etc/hosts

 

open file with editor (notepad) and change to:

 

127.0.0.1           localhost
::1                      localhost

91.119.111.111  Domain1 (91.... is IP for your liveshop for ex.)

91.119.222.222  Domain2 (dublette of your shop you want to work)

 

 

For to work with the dublette simply uncomment the first IP. For two work with liveshop uncomment second IP. so you can switch between both and second IP is not visible for nobody. Only for you, because it's not added to the DNS of your Domain. By this way you are virtualizing one domain with different content.

 

Uncomment line: simply add # as first digit to the line.

 

127.0.0.1           localhost
::1                      localhost

#91.119.111.111  Domain1 (91.... is IP for your liveshop for ex.)

91.119.222.222  Domain2 (dublette of your shop you want to work)

Link to comment
Share on other sites

Did you already checked your server configuration, if it fulfills the minimum configuration ? For me you are having too much troubles which should not be there, if server matches what prestashop needs.

 

Suggested min. configuration:

http://www.prestashop.com/forums/topic/302013-500-internal-server-error-after-install/?do=findComment&comment=1531682

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...