Retrospectively disabling comments on existing Drupal nodes.

I'm still learning about how Drupal works under the hood, so please bear that in mind, but it seems that the comment setting on the Content Type acts as a template for any nodes created using it, therefore as the other poster said, you need to go back and change all your old nodes, which can be a bind.

If you're happy diving into the database and doing it via SQL you can with the following queries, which I've tested on Drupal 7, but looking at the db structure for Drupal 6, should work for it as well:

We need to set the 'comment' column in the table 'node' to '1' for any of the nodes that we don't want commenting enabled. Make sure you select the correct 'type' (that is the internal or machine name of your Content Type)* - in my case I have a content type 'announcement':

UPDATE node SET comment=1 WHERE type='announcement';

Now if you've got the Content Revision option enabled for this Content Type, in actual fact the above won't have done anything! The actual setting is stored in the node_revision table, so we have to do it there as well (we did the first statement for consistency's sake):

UPDATE node_revision SET comment=1 WHERE nid IN (SELECT nid FROM node WHERE node.type='announcement');

That did the trick for me, and saved me the aggro of a load of mouse clicks to do the same thing.

* to get a list of the machine names of the Content Types use:

SELECT name, type FROM node_type;