[WIP - Converter] IPB 3.2/3.3/3.4

Started by emanuele, May 17, 2012, 03:44:15 PM

Previous topic - Next topic

sorensonfan41

Quote from: emanuele on January 07, 2014, 02:31:11 PM
mmm... okay, so it seems that some of the single quotes were converted from \' to \&# 039;
Try this query:
https://gist.github.com/emanuele45/8290814/raw/eaec53760d227964a9bdc1ef632814b66b06ddaf/gistfile1.sql [nofollow]

Just tried that SQL query and it affected 0 rows and did nothing.

strano

Hi,
i tried this tool with a big database - 1,2 Gib - and it stops when try to convert posts. I think because of timeout or similiar.

In the SMF forum, after the converting process, i found the oldest posts. It's possible to process the converting process, from the newest post to oldest?

In the .sql file i didn't understand the syntax...i don't know so well the forum's databases.

Sorry for the bad english :)

I'm italian but i've posted here for all.

margarett

Are you on a shared host? It's not uncommon to timeout in the conversion process. It is a quite heavy operation and PHP can get disconnected when MySQL is "hammered".

I usually try conversions (and even large upgrades in SMF) in my local machine as I often found this issue...

And no, you can't proceed from where you stopped. The converter usually truncates the destination tables before writing in them.
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

QuoteOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

strano

Maybe i didn't explained me :D
I don't want restart the process from the last stop, i would start, from the start, from the newest post to oldest. The reverse.
:)

margarett

Oh, that :P

I am not sure of the implications, but you can edit the .sql file, find

FROM {$from_prefix}posts AS p
LEFT JOIN {$from_prefix}topics AS t ON (t.tid = p.topic_id)
LEFT JOIN {$from_prefix}members AS m ON (m.member_id = p.author_id)
WHERE t.forum_id IS NOT NULL;

And replace with:

FROM {$from_prefix}posts AS p
LEFT JOIN {$from_prefix}topics AS t ON (t.tid = p.topic_id)
LEFT JOIN {$from_prefix}members AS m ON (m.member_id = p.author_id)
WHERE t.forum_id IS NOT NULL
ORDER BY p.pid DESC;

Not tested in any way, so be sure to keep a copy of the original file ;)
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

QuoteOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

strano

Thanks a lot for your help!
I successfully completed in the normal way, after that i changed and optimized many tables in the database. Has reduced itself  the dimension about of 100mib, and it's gone well.

I don't know if it is for this or not, but now it's all ok!

emanuele

Hey strano, welcome around.

If you prefer Italian, don't be shy, I usually don't bite. :P (there is a board "somewhere" lol)

As a general idea, I think that start from the beginning or from the end should not make much difference, just because the process *has* to finish correctly, if it doesn't something is broken and should be repeated or fixed.

If you start from the end and the conversion doesn't end properly, it would mean all the topics are missing some piece at the beginning, SMF *should* be able to fix the errors with a bit of maintenance, but again I would prefer to have a clean conversion than a totally messy forum...


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

NeBeDab

I have Version: IP.Board 3.3.4

I downloaded files from this link ----> http://www.simplemachines.org/community/index.php?topic=477019.0

and i have this error:

Sorry, the database connection information used in the specified installation of SMF cannot access the installation of Invision Power Board 3.2. This may either mean that the installation doesn't exist, or that the Database account used does not have permissions to access it.

The error that was received from the Database was: SELECT command denied to user 'user_smf754'@'localhost' for table 'members'

I follow all instructions but it stil doesn't work.. How can i fix this?!?

margarett

The MySQL user that SMF uses to connect to its database has no permission to access IPB database. You need to fix that in cPanel/phpmyadmin or maybe install SMF in the same database as IPB (different prefixes, of course) ;)
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

QuoteOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

brubsyoo

#229
I get the same error and I don't know how to fix it, could you explain to me? I can't use a different prefix

margarett

I don't see why you can't use a different prefix, since that option is offered to you at SMF install...
Nevertheless, you need to make sure that the user you configured to use with IPB database can access SMF's database or vice-versa.

How to explain it in another way... No idea, really...
The converter runs with the database details of SMF (remember, it's a SMF converter...) so it can't access IPB's details (well, it could, but it would have to be so much difficult to handle for little to none profit).
For this reason, whatever database user SMF uses, it has to be able to read IPB database.

If you really don't know how to do it, please address your host about it. Just tell them: I need the user that accesses SMF's database is also able to access IPB's database...
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

QuoteOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

brubsyoo

Quote from: margarett on April 27, 2014, 07:20:01 PM
I don't see why you can't use a different prefix, since that option is offered to you at SMF install...
Nevertheless, you need to make sure that the user you configured to use with IPB database can access SMF's database or vice-versa.

How to explain it in another way... No idea, really...
The converter runs with the database details of SMF (remember, it's a SMF converter...) so it can't access IPB's details (well, it could, but it would have to be so much difficult to handle for little to none profit).
For this reason, whatever database user SMF uses, it has to be able to read IPB database.

If you really don't know how to do it, please address your host about it. Just tell them: I need the user that accesses SMF's database is also able to access IPB's database...

Consegui, obrigada :D

virus191

It doesnt work with 3.4.6 ?
Converting...
Converting members...
Unsuccessful!
This query:
SELECT
m.member_id AS id_member, SUBSTRING(m.name, 1, 80) AS member_name,
SUBSTRING(m.members_display_name, 1, 255) AS real_name, m.email AS email_address,
SUBSTRING(m.members_pass_hash, 1, 64) AS passwd, SUBSTRING(m.members_pass_salt, 1, 8) AS password_salt,
SUBSTRING(pp.pp_bio_content, 1, 255) AS usertitle, m.last_visit AS last_login,
m.joined AS date_registered, SUBSTRING(pc.field_3, 1, 255) AS website_url,
SUBSTRING(pc.field_3, 1, 255) AS website_title,
SUBSTRING(pc.field_4, 1, 255) AS icq, SUBSTRING(pc.field_1, 1, 16) AS aim,
SUBSTRING(pc.field_8, 1, 32) AS yim, SUBSTRING(pc.field_2, 1, 255) AS msn,
SUBSTRING(pp.signature, 1, 65534) AS signature, m.ip_address AS member_ip, m.ip_address AS member_ip2, '0' AS total_time_logged_in,
IF (m.bday_year IS NULL, '0001-01-01', IF (m.bday_year = 0 AND m.bday_month != 0 AND m.bday_day != 0, CONCAT('0004-', m.bday_month, '-', m.bday_day), CONCAT_WS('-', IF(m.bday_year <= 4, 0001, m.bday_year), IF(m.bday_month = 0, 01, IF(m.bday_month < 10, CONCAT('0', m.bday_month), m.bday_month)), IF(m.bday_day = 0, 01, IF(m.bday_day < 10, CONCAT('0', m.bday_day), m.bday_day))))) AS birthdate, m.email_pm AS pm_email_notify,
CASE
WHEN (m.member_group_id = '4') THEN 1
WHEN (m.member_group_id = '2') THEN -1
WHEN (m.member_group_id = '6') THEN 2
ELSE 0
END AS id_group,
CASE
WHEN (pc.field_5 = 'm') THEN 1
WHEN (pc.field_5 = 'f') THEN 2
ELSE 0
END AS gender
FROM `vrsnet_tibipb`.ibf_members AS m
LEFT JOIN `vrsnet_tibipb`.ibf_pfields_content AS pc ON (pc.member_id = m.member_id)
LEFT JOIN `vrsnet_tibipb`.ibf_profile_portal AS pp ON (pp.pp_member_id = m.member_id)
LIMIT 0, 500;
Caused the error:
Unknown column 'pp.pp_bio_content' in 'field list'

darkden

#233
Great job!
Thx alot convert my ipb 3.3 into smf2, all work fine.

punjabizone

#234
hello i am using ipboard 3.4.6 i getting error while i am converting

QuoteSorry, the database connection information used in the specified installation of SMF cannot access the installation of Invision Power Board 3.2. This may either mean that the installation doesn't exist, or that the Database account used does not have permissions to access it.

The error that was received from the Database was: SELECT command denied to user 'punjabi_smf'@'localhost' for table 'members'

Please anyone help me how to fix this error please

punjabizone

plz anyone help me i keep getting this while i tring to convert my board to smf

Sorry, the database connection information used in the specified installation of SMF cannot access the installation of Invision Power Board 3.2. This may either mean that the installation doesn't exist, or that the Database account used does not have permissions to access it.

The error that was received from the Database was: SELECT command denied to user 'punjabi_smf'@'localhost' for table 'members'

punjabizone

Hello i fix the above error !but now i am facing this error when i started to converting

how i can fix this please help me



Converting...
Converting members...
Unsuccessful!
This query:
SELECT
m.member_id AS id_member, SUBSTRING(m.name, 1, 80) AS member_name,
SUBSTRING(m.members_display_name, 1, 255) AS real_name, m.email AS email_address,
SUBSTRING(m.members_pass_hash, 1, 64) AS passwd, SUBSTRING(m.members_pass_salt, 1, 8) AS password_salt,
m.title AS usertitle, m.last_visit AS last_login,
m.joined AS date_registered, SUBSTRING(pc.field_3, 1, 255) AS website_url,
SUBSTRING(pc.field_3, 1, 255) AS website_title,
SUBSTRING(pc.field_4, 1, 255) AS icq, SUBSTRING(pc.field_1, 1, 16) AS aim,
SUBSTRING(pc.field_8, 1, 32) AS yim, SUBSTRING(pc.field_2, 1, 255) AS msn,
SUBSTRING(pp.signature, 1, 65534) AS signature, m.ip_address AS member_ip, m.ip_address AS member_ip2, '0' AS total_time_logged_in,
IF (m.bday_year IS NULL, '0001-01-01', IF (m.bday_year = 0 AND m.bday_month != 0 AND m.bday_day != 0, CONCAT('0004-', m.bday_month, '-', m.bday_day), CONCAT_WS('-', IF(m.bday_year <= 4, '0001', m.bday_year), IF(m.bday_month = 0, '01', IF(m.bday_month < 10, CONCAT('0', m.bday_month), m.bday_month)), IF(m.bday_day = 0, '01', IF(m.bday_day < 10, CONCAT('0', m.bday_day), m.bday_day))))) AS birthdate,
CASE
WHEN (m.member_group_id = '4') THEN 1
WHEN (m.member_group_id = '2') THEN -1
WHEN (m.member_group_id = '6') THEN 2
ELSE 0
END AS id_group,
CASE
WHEN (pc.field_5 = 'm') THEN 1
WHEN (pc.field_5 = 'f') THEN 2
ELSE 0
END AS gender
FROM `punjabi_s`.members AS m
LEFT JOIN `punjabi_s`.pfields_content AS pc ON (pc.member_id = m.member_id)
LEFT JOIN `punjabi_s`.profile_portal AS pp ON (pp.pp_member_id = m.member_id)
LIMIT 0, 500;
Caused the error:
Unknown column 'pc.field_3' in 'field list'

margarett

It seems that your database layout is different from the one used to build the converter... Since those are minor user details, you can just delete this content:
SUBSTRING(pc.field_3, 1, 255) AS website_url,
SUBSTRING(pc.field_3, 1, 255) AS website_title,
SUBSTRING(pc.field_4, 1, 255) AS icq, SUBSTRING(pc.field_1, 1, 16) AS aim,
SUBSTRING(pc.field_8, 1, 32) AS yim, SUBSTRING(pc.field_2, 1, 255) AS msn,

From the converter...
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

QuoteOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

punjabizone

Thank You sir :)

I will try again  and delete these contents
Quote from: margarett on July 14, 2014, 05:36:12 AM
It seems that your database layout is different from the one used to build the converter... Since those are minor user details, you can just delete this content:
SUBSTRING(pc.field_3, 1, 255) AS website_url,
SUBSTRING(pc.field_3, 1, 255) AS website_title,
SUBSTRING(pc.field_4, 1, 255) AS icq, SUBSTRING(pc.field_1, 1, 16) AS aim,
SUBSTRING(pc.field_8, 1, 32) AS yim, SUBSTRING(pc.field_2, 1, 255) AS msn,

From the converter...

punjabizone

Thank sir so much finally my  board is successfully convert to smf
but user posts count is zero now i can fix this, i was make around 22,000 posts on my profile its 0 post count how i can fix this
thank you everybody


Quote from: margarett on July 14, 2014, 05:36:12 AM
It seems that your database layout is different from the one used to build the converter... Since those are minor user details, you can just delete this content:
SUBSTRING(pc.field_3, 1, 255) AS website_url,
SUBSTRING(pc.field_3, 1, 255) AS website_title,
SUBSTRING(pc.field_4, 1, 255) AS icq, SUBSTRING(pc.field_1, 1, 16) AS aim,
SUBSTRING(pc.field_8, 1, 32) AS yim, SUBSTRING(pc.field_2, 1, 255) AS msn,

From the converter...

Advertisement: