Upgrade 5.1.x to 6.x =========================== If you want to migrate your site from T5 to the latest version of tendenci T7, you'd need to take two steps because of the change in the way django switched database migration methods moving to django 1.8. For Tendenci this means you must: 1) Migrate from T5 to T6 2) Migrate from T6 to T7 In this guide, we'll show you how to migrate from T5 to T6. In general, to migrate your site from T5 to T6, you'd need to set up a T6 site, update the theme to fit your needs, then move the database and media files from your T5 site to the new T6 site. 1. Set up a T6 site ------------------- The instruction `here`_ can help you to get your T6 site set up. .. _here: https://github.com/tendenci/tendenci-project-template/tree/tendenci6 You might also need to look at this `guide`_ for information on server setup. .. _guide: https://github.com/tendenci/tendenci/blob/tendenci6/docs/source/installation/remote.txt Note: Please write down your T6's current theme name, you will need it in the last step. The current theme name can be found in the theme editor. 2. Dump database and zip the media files on your T5 site -------------------------------------------------------- :: mkdir /tmp/ && cd /tmp/ sudo -u postgres pg_dump --file=.dump --host=localhost --username= tar -C /media -czvf _media.tar.gz . If your T5 and T6 sites are not on the same server, you'll need to move (with scp) the database dump and media .gz file to your T6 server. 3. Restore database on your T6 site ----------------------------------- If your T5 and T6 sites are on the same server, skip this step. :: # create and restore database sudo -u postgres psql CREATE USER WITH PASSWORD ''; CREATE DATABASE WITH OWNER ; GRANT ALL PRIVILEGES ON DATABASE TO ; # type '\q' to quit psql sudo -u postgres psql -d --file=.dump sudo -u postgres psql -d -c "CREATE EXTENSION postgis;" # restore media files tar -C /media -xzvf /tmp//_media.tar.gz After that, update the `DATABASES` setting in the conf/local_settings.py. 4. Copy over site specific settings from T5 .env and conf/local_settings.py --------------------------------------------------------------------------- It can include but may not limit to the following: - SECRET_KEY - SITE_SETTINGS_KEY - AWS_ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY - DEFAULT_FROM_EMAIL - # payment gateway settings - # newsletters settings 5. Migrate database ------------------- :: python manage.py clear_cache python manage.py syncdb python manage.py migrate # We had to run the following commands. But your mileage may vary. python manage.py migrate social_auth 0001 --fake python manage.py migrate wp_exporter 0001 --fake python manage.py migrate djcelery 0001 --fake python manage.py migrate --delete-ghost-migrations python manage.py migrate user_groups 0012 --fake python manage.py migrate social_auth 0001 --fake python manage.py migrate wp_exporter 0001 --fake python manage.py migrate djcelery 0001 --fake python manage.py migrate wp_importer 0001 --fake python manage.py migrate wp_importer 0001 --fake 6. Run deploy.py ---------------- :: python deploy.py 7. Set theme ------------ Use the theme name you wrote down in step 1. :: python manage.py set_theme 8. Clear caches ---------------- :: python manage.py clear_cache python manage.py clear_theme_cache Sometimes things can be bumpy depending on your database's state. Stay cool and try to debug. Seek help if you're not able to resolve yourself. Finally, restart your new T6 site. .. Note:: If you want to copy over the theme from your T5 site to T6/T7: 1) Make sure the theme is bootstrap 3 compatible. 2) Update templates to replace `{% block body %}` with `{% block content %}`. 3) Update templates to add quotes to the first argument of url tags. For example, if you have url tag `{% url admin:boxes_box_change box.pk %}`, it needs to be updated to `{% url 'admin:boxes_box_change' box.pk %}`.