Move data from one prestashop version to another - mysql

I have a client website that is running on Prestashop v1.4
Because it has been "maintained" by a previous developer who modified core files and generally made a big mess, the upgrade module no longer works properly. Given that the client is handing over the project to me, and wants a new theme implemented, I am moving straight to Prestashop 1.6 and using the Compass/Boostrap 3 default theme as a base.
Obviously, the important thing is that the clients data should be migrated. So my question is, is it possible to make a clean export from Prestashop 1.4 of only the actual sales and website access data, skipping anything like module configs etc, in order to reimport it all to Prestashop 1.6?
This way, my client can keep his order data, access data, products, payments etc, and I can build a new theme without having to fight with an old installation or theme that have hardcoded rubbish in it.

This module provides an automated method migrate products, customers, orders, categories, customers password and other data from Prestashop to Prestashop.
http://addons.prestashop.com/en/8934-prestashop-to-prestashop-migration-tool.html

I think you can choose many migrate module to do your request.
If you only want to upgrade the current site to 1.6 (or the latest version). you can create a new site and transfer all of the data from the current site to the live site.
After you had set up the live site completely, you just re-transfer data from the new site to the live site. you can use a module many times with the site that has been granted a license.
If you want to transfer Product, categories and customer, you just use the Upgrade PrestaShop 1.6 to 1.7 free
If you want to transfer all of the data (products, customer, categories, order, cms, message, shipping,...) you should purchase the premium version module: 1 CLICK to migrate

Related

trucate DB table in magento

Magento itself provides some kind of API Structure (like the API System inside Laravel Nova) for all kind of requests, we need to extend that endpoints to provide a functionality to just truncate the inventory table in DB
the reason for that: products and stocks coming from an external Software and will be placed inside magento, and because of that we ran into stock count problems between magento and external Software
there is still no official solution for that problem from Adobe so the workaround is to empty that specific table in DB everytime we import the new stocks

WordPress WooCommerce Staging Site Database Sync

I manage a WordPress WooCommerce site which has a couple mishaps in the recent past. There is no staging environment setup which would have prevented the mishaps and is not trying to set one up.
I have researched many WordPress DB Sync plugins, however, not many states they work well with WooCommerce. The issue is on my side, the product team can update add/remove products, categories, blog posts, etc. at any given time, they have no set time-frame window which updates the site.
I need a way that I can sync menu structures, products, and all, blog posts, etc. with the production environment. I need to sync, because while the product team is working new orders come in and comments are posted, etc.
Is there any easy way to set up a staging site that will accomplish this?
Daily, I work with MSSQL and write a lot of SQL, so I thought I could write a sync script for moving/syncing data to production, however, the command I needed "MERGE" is not available in MySQL. Or, is there a way WordPress can run on MSSQL?
Any ideas?
My suggestion, you can use default WooCommerce Import and Export available on the Product page on the top side.
It is the best option to save all database in Raw format and easily restore as per your need.

How to synchronize a SQLite Core Data database with a remote MySQL database?

I recently completed work on an iOS app, and everything for the most part is working the way it should with the app. I have managed to create a multi-user app that uses Core Data to persist to a SQLite DB. However, the time has come where the users would like to manage their account from a remote device, i.e. their own phone, or whatever web enabled device their using. With that said, I have done a little google searching and have discovered that I am going to need to create a "web service". Now the caveat is that I already accumulated data in the SQLite DB on the iDevice that is running the app. I would like to push the existing data to a MySQL DB or a remote machine, and have it synchronized. For example when a user updates their account on the iOS device, the change gets pushed to the MySQL DB, and if the user connects to a web service using a standard browser that is updates the SQLite DB on the iOS device.
I started learning rails because I figured it would be a good solution to create a simple web front-end for the user to manage their account with, and it exposes an API for a developer to manipulate data in the database. Basically, I would like to hear some suggestions from the community, or links that could provide a good starting point for what I'm trying to accomplish.
If you're looking at rails, try taking a peek at ActiveAdmin gem. It's what I used on my first iOS and rails project for a client. It gives you an administrative dashboard that'll handle a lot of what you'll be wanting if you can get it set up. It's very confusing at first, but a few weeks will give you a pretty good web solution. In addition, depending on your experience in creating servers, you might want to look at heroku for a low cost host that does all the work for you (if you start needing more processors though, Heroku gets pricy very quickly). From a github project, you can have heroku up and running your rails code in about 5 minutes flat.
As far as synchronizing your database from Server To Phone: You'll want to institute a type of last_updated_at timestamp for your models on the server DB. Now when anything is updated, you'll update the timestamp. Now the iOS app can pass a ?last_updated_at parameter to your server. This will allow your server to figure out everything that has changed since the last time they pinged the server. Then gnab it into your core data db on the phone.
For Syncing Phone to Server:
First make sure the phone is up to date before syncing (using last_updated_at param). If it's clear, then this is where it's hard. You'll need to translate the objects you want to sync from the CoreData db (since it adds it's own columns/tables automatically) and pass them up. Otherwise you can pass up your coreData db and do some kind of conversion on the server.
OR
Do a conversion in your iPhone app with an update to migrate off of CoreData. This will be a pain but it'll help in the long run if you deploy to other OS's. You'll need to create sqlite3 queries to convert the CoreData db into a new SQL DB (we were able to copy 2-3MB of data within 1.2 seconds on an iPhone 5 so it's pretty quick). Then the app will only use SQLite3 so that it can sync up the full DB to the server. Then this will make syncing with the phone easier, where it can just grab the full DB from the server and plug it in.
typedef NS_ENUM(NSInteger, RecordStatus){
RecordStatusUnchanged = 0,
RecordStatusUpdated = 1,
RecordStatusAdded = 2,
RecordStatusRemoved = 3
};
Create a new SQL table named change_record. column like ( item_id, status, category_name)
For Update
change_record table: from the local database, you will get item_id, keep status RecordStatusUpdated, and set the category_name
For Add
change_record table: item_id will empty, keep status RecordStatusAdded
, set the category_name
For Deletion
change_record table: from the local database, you will get item_id, keep status RecordStatusRemoved
, set the category_name empty
Use a background service to check internet connection is available for each n time interval.
if change_record count > 0.
then send all items(using loop) to the server

Managing a Joomla website with Git?

I work at a large university and have been instructed to look in to using a source control system (git, svn, etc) to manage the websites. We use Joomla which relies heavily on MySQL.
Currently, we have a barely functional system that uses a development server which pushes to a live server whenever we change a website. It's a pain and it doesn't always work. Plus, we can and often do overwrite changes that another dev has made.
We want to be able to manage content via the Joomla front end on the dev branch, then push those changes to the test branch, then to the master (live) branch.
Without getting off in tot he weeds: my question is, essentially, what is a good strategy for managing websites using a CMS like Joomla that relies on a database?
Since you also want to sync the database (content is stored in the db, while images and media are on the filesystem), you need the commit/push script to also dump the db to a file, and the pull script to load the db. This can be done with pre and post hooks, http://githooks.com/ or google it.
However there will be different parts of Joomla that you will want to sync separately.
Let's consider three servers:
edit server: where content is managed
dev server: where extensions are tested and configured
test server
production server
Let's consider three layers of information:
The user and session data: this should not be synchronized at all so people are not logged out, and if any users register on the production server their login will be preserved.
The contents, user groups and assets (privileges): this is the articles, news, images which have to go from edit to test to production and to dev (unless you have content-specific privileges at the user level i.e. each user has separate privileges on each content item)
The template, extensions, modules, menu configurations: this will go from dev to test to production and edit.
Each of these groups of data will require their own branch and their custom pre-commit hooks to include in the commit/push the relevant database tables. The list of tables for each group depends on the extensions you are using.
I have written an article it's in italian and for svn but you can grab some of the bash scripts we use: http://www.fasterjoomla.com/joomla-tips/svn-per-joomla or translated by google http://translate.google.com/translate?sl=it&tl=en&js=n&prev=_t&hl=it&ie=UTF-8&u=http%3A%2F%2Fwww.fasterjoomla.com%2Fjoomla-tips%2Fsvn-per-joomla

Magento: Sync database between staging and production

I have two instances of Magento, a production site and a staging site, both have there own codebase and mysql databases.
We have been making some changes to the staging site, specifically we have installed the aheadworks - payments and subscriptions module which has been configured.
We need to sync all the products from the production site to the staging site, then we will need to make our changes to the products so they are configured to work with the aheadworks - payments and subscriptions module and finally upload everything back to the production site without wiping out any new customers/orders that have been added to the production site while we have been making our changes.
Could anyone please explain how we could achieve this ?
Thanks
Steven
I suggest first copying the entire live database into your staging environment. That way, you have the most recent (live) data to work with on staging. After that, do some testing of the newly installed module on staging. Implement any template and code changes needed and test if the required features are working (for one product). Once everything works as expected, install the module on live, configure it there and start using it there.
So try to do most of the database / admin changes on live only, and use the staging environment just for testing if the module does what you need. That way, you avoid having to do complicated synchronisation of the database as well as having to do the same thing twice. Synching the databases can easily lead to problems like duplicate order IDs, and it's a lot of meticulous work which I would try to avoid. After all the products are changed on live, you could copy over the whole database to staging again, to sync afterwards. That's a lot less risky and meticulous. Hope this helps.