summaryrefslogtreecommitdiff
path: root/parts/django/docs/ref/contrib/comments/upgrade.txt
diff options
context:
space:
mode:
Diffstat (limited to 'parts/django/docs/ref/contrib/comments/upgrade.txt')
-rw-r--r--parts/django/docs/ref/contrib/comments/upgrade.txt78
1 files changed, 78 insertions, 0 deletions
diff --git a/parts/django/docs/ref/contrib/comments/upgrade.txt b/parts/django/docs/ref/contrib/comments/upgrade.txt
new file mode 100644
index 0000000..3d6b5af
--- /dev/null
+++ b/parts/django/docs/ref/contrib/comments/upgrade.txt
@@ -0,0 +1,78 @@
+===============================================
+Upgrading from Django's previous comment system
+===============================================
+
+Prior versions of Django included an outdated, undocumented comment system. Users who reverse-engineered this framework will need to upgrade to use the
+new comment system; this guide explains how.
+
+The main changes from the old system are:
+
+ * This new system is documented.
+
+ * It uses modern Django features like :doc:`forms </topics/forms/index>` and
+ :doc:`modelforms </topics/forms/modelforms>`.
+
+ * It has a single ``Comment`` model instead of separate ``FreeComment`` and
+ ``Comment`` models.
+
+ * Comments have "email" and "URL" fields.
+
+ * No ratings, photos and karma. This should only effect World Online.
+
+ * The ``{% comment_form %}`` tag no longer exists. Instead, there's now two
+ functions: ``{% get_comment_form %}``, which returns a form for posting a
+ new comment, and ``{% render_comment_form %}``, which renders said form
+ using the ``comments/form.html`` template.
+
+ * The way comments are include in your URLconf have changed; you'll need to
+ replace::
+
+ (r'^comments/', include('django.contrib.comments.urls.comments')),
+
+ with::
+
+ (r'^comments/', include('django.contrib.comments.urls')),
+
+Upgrading data
+--------------
+
+The data models for Django's comment system have changed, as have the
+table names. Before you transfer your existing data into the new comments
+system, make sure that you have installed the new comments system as
+explained in the
+:doc:`quick start guide </ref/contrib/comments/index>`.
+This will ensure that the new tables have been properly created.
+
+To transfer your data into the new comments system, you'll need to directly
+run the following SQL:
+
+.. code-block:: sql
+
+ BEGIN;
+
+ INSERT INTO django_comments
+ (content_type_id, object_pk, site_id, user_name, user_email, user_url,
+ comment, submit_date, ip_address, is_public, is_removed)
+ SELECT
+ content_type_id, object_id, site_id, person_name, '', '', comment,
+ submit_date, ip_address, is_public, not approved
+ FROM comments_freecomment;
+
+ INSERT INTO django_comments
+ (content_type_id, object_pk, site_id, user_id, user_name, user_email,
+ user_url, comment, submit_date, ip_address, is_public, is_removed)
+ SELECT
+ content_type_id, object_id, site_id, user_id, '', '', '', comment,
+ submit_date, ip_address, is_public, is_removed
+ FROM comments_comment;
+
+ UPDATE django_comments SET user_name = (
+ SELECT username FROM auth_user
+ WHERE django_comments.user_id = auth_user.id
+ ) WHERE django_comments.user_id is not NULL;
+ UPDATE django_comments SET user_email = (
+ SELECT email FROM auth_user
+ WHERE django_comments.user_id = auth_user.id
+ ) WHERE django_comments.user_id is not NULL;
+
+ COMMIT;