Temat: Połączyć useró z 2 baz

Witam, prosze mnie nei bic jesli gdzies o tym bylo lub jest to banalne, szukalem w googlach i tutaj jednak nic podobnego nie znalazlem.

Oto mam dwa fora oparte na mybb i chce userow z jednego forum preniesc do drugiego forum tak bez szwanku tzn zeby mogli sie logowac przy uzyciu danych z poprzedniej bazy.
Z gory dzieki za pomoc.

konto usunięte

Temat: Połączyć useró z 2 baz

to eksportuj tabele z userami do drugiej bazy.
Michał Jarosz

Michał Jarosz Frontend Developer &
Team Leader

Temat: Połączyć useró z 2 baz

Pytanie, czy oprócz userów, chcesz też przenieść ich wypowiedzi.

Temat: Połączyć useró z 2 baz

nie, tylko samych userow.
Jednak pierwsze forum zostalo prerabiane z phpbb na mybb i dzialalo na skrypcie mybb, jednak powyesportowaniu ma przedrotki phpbb i obawiam sie o to.
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Połączyć useró z 2 baz

Andrzej Andrzejewski:
Oto mam dwa fora oparte na mybb i chce userow z jednego forum preniesc do drugiego forum tak bez szwanku tzn zeby mogli sie logowac przy uzyciu danych z poprzedniej bazy.
Z tego co sprawdziłem to w MyBB (MyBB 1.6, źródło: http://www.mybb.com) struktura tabeli (i zarazem zapytanie tworzące tą tabelę) użytkowników ma postać:
CREATE TABLE mybb_users (
uid int unsigned NOT NULL auto_increment,
username varchar(120) NOT NULL default '',
password varchar(120) NOT NULL default '',
salt varchar(10) NOT NULL default '',
loginkey varchar(50) NOT NULL default '',
email varchar(220) NOT NULL default '',
postnum int(10) NOT NULL default '0',
avatar varchar(200) NOT NULL default '',
avatardimensions varchar(10) NOT NULL default '',
avatartype varchar(10) NOT NULL default '0',
usergroup smallint unsigned NOT NULL default '0',
additionalgroups varchar(200) NOT NULL default '',
displaygroup smallint unsigned NOT NULL default '0',
usertitle varchar(250) NOT NULL default '',
regdate bigint(30) NOT NULL default '0',
lastactive bigint(30) NOT NULL default '0',
lastvisit bigint(30) NOT NULL default '0',
lastpost bigint(30) NOT NULL default '0',
website varchar(200) NOT NULL default '',
icq varchar(10) NOT NULL default '',
aim varchar(50) NOT NULL default '',
yahoo varchar(50) NOT NULL default '',
msn varchar(75) NOT NULL default '',
birthday varchar(15) NOT NULL default '',
birthdayprivacy varchar(4) NOT NULL default 'all',
signature text NOT NULL,
allownotices int(1) NOT NULL default '0',
hideemail int(1) NOT NULL default '0',
subscriptionmethod int(1) NOT NULL default '0',
invisible int(1) NOT NULL default '0',
receivepms int(1) NOT NULL default '0',
receivefrombuddy int(1) NOT NULL default '0',
pmnotice int(1) NOT NULL default '0',
pmnotify int(1) NOT NULL default '0',
threadmode varchar(8) NOT NULL default '',
showsigs int(1) NOT NULL default '0',
showavatars int(1) NOT NULL default '0',
showquickreply int(1) NOT NULL default '0',
showredirect int(1) NOT NULL default '0',
ppp smallint(6) NOT NULL default '0',
tpp smallint(6) NOT NULL default '0',
daysprune smallint(6) NOT NULL default '0',
dateformat varchar(4) NOT NULL default '',
timeformat varchar(4) NOT NULL default '',
timezone varchar(4) NOT NULL default '',
dst int(1) NOT NULL default '0',
dstcorrection int(1) NOT NULL default '0',
buddylist text NOT NULL,
ignorelist text NOT NULL,
style smallint unsigned NOT NULL default '0',
away int(1) NOT NULL default '0',
awaydate int(10) unsigned NOT NULL default '0',
returndate varchar(15) NOT NULL default '',
awayreason varchar(200) NOT NULL default '',
pmfolders text NOT NULL,
notepad text NOT NULL,
referrer int unsigned NOT NULL default '0',
referrals int unsigned NOT NULL default '0',
reputation bigint(30) NOT NULL default '0',
regip varchar(50) NOT NULL default '',
lastip varchar(50) NOT NULL default '',
longregip int(11) NOT NULL default '0',
longlastip int(11) NOT NULL default '0',
language varchar(50) NOT NULL default '',
timeonline bigint(30) NOT NULL default '0',
showcodebuttons int(1) NOT NULL default '1',
totalpms int(10) NOT NULL default '0',
unreadpms int(10) NOT NULL default '0',
warningpoints int(3) NOT NULL default '0',
moderateposts int(1) NOT NULL default '0',
moderationtime bigint(30) NOT NULL default '0',
suspendposting int(1) NOT NULL default '0',
suspensiontime bigint(30) NOT NULL default '0',
suspendsignature int(1) NOT NULL default '0',
suspendsigtime bigint(30) NOT NULL default '0',
coppauser int(1) NOT NULL default '0',
classicpostbit int(1) NOT NULL default '0',
loginattempts tinyint(2) NOT NULL default '1',
failedlogin bigint(30) NOT NULL default '0',
usernotes text NOT NULL,
UNIQUE KEY username (username),
KEY usergroup (usergroup),
KEY birthday (birthday),
KEY longregip (longregip),
KEY longlastip (longlastip),
PRIMARY KEY (uid)
) TYPE=MyISAM;

Zaś w przypadku phpBB (phpBB 3.0.7-PL1, źródło: http://www.phpbb.pl) taką postać:
CREATE TABLE phpbb_users (
user_id mediumint(8) UNSIGNED NOT NULL auto_increment,
user_type tinyint(2) DEFAULT '0' NOT NULL,
group_id mediumint(8) UNSIGNED DEFAULT '3' NOT NULL,
user_permissions mediumtext NOT NULL,
user_perm_from mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
user_ip varchar(40) DEFAULT '' NOT NULL,
user_regdate int(11) UNSIGNED DEFAULT '0' NOT NULL,
username varchar(255) DEFAULT '' NOT NULL,
username_clean varchar(255) DEFAULT '' NOT NULL,
user_password varchar(40) DEFAULT '' NOT NULL,
user_passchg int(11) UNSIGNED DEFAULT '0' NOT NULL,
user_pass_convert tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
user_email varchar(100) DEFAULT '' NOT NULL,
user_email_hash bigint(20) DEFAULT '0' NOT NULL,
user_birthday varchar(10) DEFAULT '' NOT NULL,
user_lastvisit int(11) UNSIGNED DEFAULT '0' NOT NULL,
user_lastmark int(11) UNSIGNED DEFAULT '0' NOT NULL,
user_lastpost_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
user_lastpage varchar(200) DEFAULT '' NOT NULL,
user_last_confirm_key varchar(10) DEFAULT '' NOT NULL,
user_last_search int(11) UNSIGNED DEFAULT '0' NOT NULL,
user_warnings tinyint(4) DEFAULT '0' NOT NULL,
user_last_warning int(11) UNSIGNED DEFAULT '0' NOT NULL,
user_login_attempts tinyint(4) DEFAULT '0' NOT NULL,
user_inactive_reason tinyint(2) DEFAULT '0' NOT NULL,
user_inactive_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
user_posts mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
user_lang varchar(30) DEFAULT '' NOT NULL,
user_timezone decimal(5,2) DEFAULT '0' NOT NULL,
user_dst tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
user_dateformat varchar(30) DEFAULT 'd M Y H:i' NOT NULL,
user_style mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
user_rank mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
user_colour varchar(6) DEFAULT '' NOT NULL,
user_new_privmsg int(4) DEFAULT '0' NOT NULL,
user_unread_privmsg int(4) DEFAULT '0' NOT NULL,
user_last_privmsg int(11) UNSIGNED DEFAULT '0' NOT NULL,
user_message_rules tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
user_full_folder int(11) DEFAULT '-3' NOT NULL,
user_emailtime int(11) UNSIGNED DEFAULT '0' NOT NULL,
user_topic_show_days smallint(4) UNSIGNED DEFAULT '0' NOT NULL,
user_topic_sortby_type varchar(1) DEFAULT 't' NOT NULL,
user_topic_sortby_dir varchar(1) DEFAULT 'd' NOT NULL,
user_post_show_days smallint(4) UNSIGNED DEFAULT '0' NOT NULL,
user_post_sortby_type varchar(1) DEFAULT 't' NOT NULL,
user_post_sortby_dir varchar(1) DEFAULT 'a' NOT NULL,
user_notify tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
user_notify_pm tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
user_notify_type tinyint(4) DEFAULT '0' NOT NULL,
user_allow_pm tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
user_allow_viewonline tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
user_allow_viewemail tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
user_allow_massemail tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
user_options int(11) UNSIGNED DEFAULT '230271' NOT NULL,
user_avatar varchar(255) DEFAULT '' NOT NULL,
user_avatar_type tinyint(2) DEFAULT '0' NOT NULL,
user_avatar_width smallint(4) UNSIGNED DEFAULT '0' NOT NULL,
user_avatar_height smallint(4) UNSIGNED DEFAULT '0' NOT NULL,
user_sig mediumtext NOT NULL,
user_sig_bbcode_uid varchar(8) DEFAULT '' NOT NULL,
user_sig_bbcode_bitfield varchar(255) DEFAULT '' NOT NULL,
user_from varchar(100) DEFAULT '' NOT NULL,
user_icq varchar(15) DEFAULT '' NOT NULL,
user_aim varchar(255) DEFAULT '' NOT NULL,
user_yim varchar(255) DEFAULT '' NOT NULL,
user_msnm varchar(255) DEFAULT '' NOT NULL,
user_jabber varchar(255) DEFAULT '' NOT NULL,
user_website varchar(200) DEFAULT '' NOT NULL,
user_occ text NOT NULL,
user_interests text NOT NULL,
user_actkey varchar(32) DEFAULT '' NOT NULL,
user_newpasswd varchar(40) DEFAULT '' NOT NULL,
user_form_salt varchar(32) DEFAULT '' NOT NULL,
user_new tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
user_reminded tinyint(4) DEFAULT '0' NOT NULL,
user_reminded_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
PRIMARY KEY (user_id),
KEY user_birthday (user_birthday),
KEY user_email_hash (user_email_hash),
KEY user_type (user_type),
UNIQUE username_clean (username_clean)
) CHARACTER SET `utf8` COLLATE `utf8_bin`;

Propozycja rozwiązania Twojego problemu:
1. Przenosisz całą tabelę z jednej bazy do drugiej / docelowej. Oczywiście nie usuwasz i nie nadpisujesz istniejącej tabeli.
2. Tworzysz odpowiednie zapytanie przenoszące dane z jednej tabeli do drugiej biorąc pod uwagę typy oraz nazwy pól, np.:
a) dane z pola "username varchar(120)" przerzucasz do pola "username varchar(255)"
b) dane z pola "password varchar(120)" przerzucasz do pola "user_password varchar(40)"
c) itd.

Musisz też wziąć pod uwagę to, że niektóre pola występują w jednej tabeli, a w drugiej ich nie ma lub są innego typu bądź długości (przypadek "b").

Poza przeniesieniem samych danych dotyczących użytkowników może trzeba będzie przenieść dane na temat grup, praw dostępu, logowania etc.Krzysztof N. edytował(a) ten post dnia 18.11.10 o godzinie 23:01

Temat: Połączyć useró z 2 baz

teraz zobaczylem ze to przekonwertowane phpbb na mybb ma tez w bazie swoj wpis z userami taki sam jak na mybb wiec wexportowalem go i wrzucilem do docelowej bazy pod inna nazwa jednak wywalao mi wciaz bledu niekompatybilnosci, i te niekompatybilne wpisy usuwalem. Teraz mi wyskauje "Duplicate entry '1' for key 1" jakby udao sie to wrzucic to wzialbym na operacje potem Skopiuj tabelę do (bazadanych.tabela): i podaj mybb.users.

Ciezki przypadek. Prosze daej o pomoc i dzieki za zainteresowanie w ogole:)
Jakub L.

Jakub L. Programista

Temat: Połączyć useró z 2 baz

Masz zduplikowane klucze główne w obu tabelach.
Tu zaczynają się schody bo mogą występować przypadki szczególne jak na przykład użyta wartość klucza z zakresu powyżej najwyższej bieżącej wartości.

Temat: Połączyć useró z 2 baz

to chyba wykracza poza moje umiejętności, może ktos chcialby sie podjac zrobienia tego? Propozycje na pm jak cos :)
Tomasz Kargól

Tomasz Kargól IT Engineer, Aldec
ADT

Temat: Połączyć useró z 2 baz

mhm ... a co z dublującymi się nazwami userów ? :) bo nie wierze, że nie będzie dubli ...

Temat: Połączyć useró z 2 baz

nie powinny sie dublowac bo to male bazy.Docelowa 103 userów, przenoszona 3300
Michał Sznurawa

Michał Sznurawa Scala Developer

Temat: Połączyć useró z 2 baz

jeszcze tylko sprawdź, jak jest wyliczany hash hasła, bo może być solone np. jakimś idkiem;) więc jak go zmienisz, to może być problem.

Następna dyskusja:

Wiele baz danych - jako jedna?




Wyślij zaproszenie do