.. _ref-migrating: ================================ Migrating to django-comments-xtd ================================ If your project uses django-contrib-comments you can easily plug django-comments-xtd to add extra functionalities like comment confirmation by mail, comment threading and follow-up notifications. This section describes how to make django-comments-xtd take over comments support in a project in which django-contrib-comments tables have received data already. Preparation =========== First of all, install django-comments-xtd: .. code-block:: bash cd mysite pip install django-comments-xtd Then edit the settings module and change your :setting:`INSTALLED_APPS` so that django_comments_xtd and django_comments are listed in this order. Also change the :setting:`COMMENTS_APP` and add the ``EMAIL_*`` settings to be able to send mail messages: .. code-block:: python INSTALLED_APPS = [ ... 'django_comments_xtd', 'django_comments', ... ] ... COMMENTS_APP = 'django_comments_xtd' # Either enable sending mail messages to the console: EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' # Or set up the EMAIL_* settings so that Django can send emails: EMAIL_HOST = "smtp.mail.com" EMAIL_PORT = "587" EMAIL_HOST_USER = "alias@mail.com" EMAIL_HOST_PASSWORD = "yourpassword" EMAIL_USE_TLS = True DEFAULT_FROM_EMAIL = "Helpdesk " Edit the urls module of the project and mount django_comments_xtd's URLs in the path in which you had django_comments' URLs, django_comments_xtd's URLs includes django_comments': .. code-block:: python from django.conf.urls import include, url urlpatterns = [ ... url(r'^comments/', include('django_comments_xtd.urls')), ... ] Now create the tables for django-comments-xtd: .. code-block:: bash python manage.py migrate Populate comment data ===================== The following step will populate **XtdComment**'s table with data from the **Comment** model. For that purpose you can use the ``populate_xtdcomments`` management command: .. code-block:: bash python manage.py populate_xtdcomments You can pass as many DB connections as you have defined in :setting:`DATABASES` and the command will run in each of the databases, populating the **XtdComment**'s table with data from the comments table existing in each database. Now the project is ready to handle comments with django-comments-xtd.