I've done an upgrade of the postnuke to drupal script here: http://drupal.org/book/view/601 for converting newer versions of postnuke (.723) and drupal (4.4.2)

It is a direct derivative of the above script.

I've taken out everything other than users, and stories. Enjoy!
Steve

###
# We suppose old PostNuke database is called "newosdir" #what mine -was-
# and new Drupal database is called "drupaltest". #new drupal DB
# When creating your new drupal admin choose a different handle
#than was your old admin name -or- any old user. -Causes probs.

###
# VERY IMPORTANT: We suppose new drupal DB is totally blank
# so we only have the first user (master) created.
# (Don't worry if you have any translations on the Database,
# this script is not harmful for them).

# Variables importants
# Anonymous user at Postnuke
SET @anonymous_coward="Anonymous Netizen";

# starting NID for polls (SELECT MAX(sid)+1 FROM ipww_stories;)
#SET @inicom=500;

# starting NID for poll comments (SELECT MAX(cid)+1 FROM ipww_comments;)
#SET @inicomenq=500;

# First, we migrate the themes table
####

# Lets delete this 3 tables. vocabulary, term_hierachy i term_data
DELETE FROM drupaltest.vocabulary;
DELETE FROM drupaltest.term_data;
DELETE FROM drupaltest.term_hierarchy;

# We create "temes" vocabulary with id 1
INSERT INTO drupaltest.vocabulary
VALUES (1, "Temes", "Tema de la not?cia", 0, 0, 0, 0, "blog, poll, story", 0);
INSERT INTO drupaltest.term_data (tid, vid, name, description, weight)
SELECT pn_topicid, 1, pn_topictext, pn_topictext, 0 FROM newosdir.ipww_topics;
INSERT INTO drupaltest.term_hierarchy (tid, parent)
SELECT pn_topicid, 0 FROM newosdir.ipww_topics;

# User migration
####
DELETE FROM drupaltest.users WHERE uid!=1;

INSERT INTO drupaltest.users (uid, name, pass, mail, signature, theme, language, timezone, mode, sort, threshold, rid, status, init, timestamp, data) SELECT pn_uid, pn_uname, pn_pass, pn_email, pn_user_sig, "puntbarra", "ca", 7200, 0, 0, 0, 2, 1, pn_email, UNIX_TIMESTAMP('2002-01-01 01:01:01'), "N;" FROM newosdir.ipww_users WHERE pn_uid!=1;

# Story Migration
####
DELETE FROM drupaltest.node;
DELETE FROM drupaltest.term_node;

# Stories
INSERT INTO drupaltest.node (nid, type, title, score, votes, uid, status, created, comment, promote, moderate, users, teaser, body, changed, revisions, static)
SELECT pn_sid,
"story",
CASE WHEN NOT strcmp(LEFT(pn_title,3),"_TP") THEN substring(pn_title,4) ELSE pn_title END,
1,
1,
IF(strcmp(pn_informant,@anonymous_coward),pn_uid, 0) END ,
1,
unix_timestamp(pn_time),
2,
1,
0,
"1=+ 1",
CASE WHEN NOT strcmp(LEFT(pn_hometext,3),"_TP")
THEN substring(pn_hometext,4)
ELSE pn_hometext
END,
CONCAT(pn_hometext,
IF(
strcmp(
CASE WHEN NOT strcmp(LEFT(pn_bodytext,3),"_TP")
THEN substring(pn_bodytext,4)
ELSE pn_bodytext END,""),
CONCAT(
"

",
CASE WHEN NOT strcmp(LEFT(pn_bodytext,3),"_TP")
THEN substring(pn_bodytext,4)
ELSE pn_bodytext END),"")
),
now(),
"" ,
0
FROM newosdir.ipww_stories s, newosdir.ipww_users u

WHERE pn_informant=pn_uname
OR pn_informant=@anonymous_coward ;

# Themes
INSERT INTO drupaltest.term_node ( nid, tid)
SELECT pn_sid, pn_topic FROM newosdir.ipww_stories s;

# I won't be maintaining this.

Comments

comforteagle’s picture

I am having a problem where if I change importing the topics instead to the category of stories (from postnuke):

# We create "temes" vocabulary with id 1
INSERT INTO drupaltest.vocabulary
VALUES (1, "Temes", "Tema de la not?cia", 0, 0, 0, 0, "blog, poll, story", 0);
INSERT INTO drupaltest.term_data (tid, vid, name, description, weight)
SELECT pn_topicid, 1, pn_topictext, pn_topictext, 0 FROM newosdir.ipww_topics;
INSERT INTO drupaltest.term_hierarchy (tid, parent)
SELECT pn_topicid, 0 FROM newosdir.ipww_topics;

To:
# We create "temes" vocabulary with id 1
INSERT INTO drupaltest.vocabulary
VALUES (1, "Temes", "Tema de la not?cia", 0, 0, 0, 0, "blog, poll, story", 0);
INSERT INTO drupaltest.term_data (tid, vid, name, description, weight)
SELECT pn_catid, 1, pn_title, pn_title, 0 FROM newosdir.ipww_stories_cat;
INSERT INTO drupaltest.term_hierarchy (tid, parent)
SELECT pn_catid, 0 FROM newosdir.ipww_stories_cat;

The categories from the postnuke stories do show up under 'temes', but are not displayed in the drupal story headers (title of story, posted by, time, terms) like the do if importing the topics.

Anyone have an explanation of why that would be??

Further, I can create a new story, choose one of the categories I've imported and the new story will display that term in the story header.

comforteagle’s picture

The above tweaked code works.

At the end of the top script you just change:

# Themes
INSERT INTO drupaltest.term_node ( nid, tid)
SELECT pn_sid, pn_topic FROM newosdir.ipww_stories s;

to:
# Themes
INSERT INTO drupaltest.term_node ( nid, tid)
SELECT pn_sid, pn_catid FROM newosdir.ipww_stories s;