Здравствуйте,
Есть необходимость перенести базу из версии Bugzilla 2.20 на Bugzilla 3.2 rc1.
В багзиле версии 2.20 в базе есть таблицы, которые не соответствуют новой схеме, база содержит значения на русском языке.
При запуске checksetup.pl он ругался на некоторые таблицы(bugs_on_date) и эту таблицу я удалила.
Затем запустила contrib/recode.pl --guess --show-failures --charset=koi8r и он стал выдавать ошибки для таблиц которые не из схемы:
Table fixes_prefs does not exist in the database schema. at Bugzilla/DB/Schema.pm line 1632.
Для некоторых таблиц выдавал ошибку:
Failed to guess: Key: H5tZ9TgOJt8GVKZKGLuA1w DATA: ц▌ц╦ц╗ц║ц╙ц═ Row: [bug_id = 11831]
Если кто-нибудь сталкивался с этим или есть какие-нибудь предположения помогите.
Заранее спасибо!
Отсутствует
В какой кодировке БД от 2.20?
Был ли на 2.20 включен параметр 'utf8'?
В каких именно таблицах значения на русском, которые надо спасти?
О запуске какой версии checksetup.pl идет речь?
Отсутствует
Дорогая Tuchka_84, а откуда вообще взялся koi8-r? По идее, там должна быть кодировка либо cp1251 с игнорированием регистра или с бинарным поиском, или кодировка utf8.
Отсутствует
В какой кодировке БД от 2.20?
Был ли на 2.20 включен параметр 'utf8'?
Здравствуйте,
Как в Mysql посмотреть в какой кодировке отдельная база данных? (Bugzilla 2.20 установлена на чужой машине на Windows, к этой машине я доступа не имею, но все что нужно могу спросить. Мне выслали .sql dump этой базы данных. Если в самом sql файле можно найти в какой кодировке БД, то скажите как).
Также где посмотреть в версии 2,20 включен ли параметр utf 8? У меня стоит только версия 3,2 Rc1, в 2.20 на той же вкладке эти настройки?
Могу также выслать настройки кодировок MYSQl (Show variables like '%char') на своем сервере( на FreeBSD)
О запуске какой версии checksetup.pl идет речь?
На моей машине стоит только Bugzilla 3,2rc1.
Поставила все по умолчанию - все работало ОК(в localconfig задала dbname='bugstest'; ).
Захотела импортировать старую базу багзилы.
Создала в Mysql пустую базу с нужным именем bugs. Импортировала её из sql дампа.
Изменила в localconfig имя базы с 'bugstest' на 'bugs'. И затем перезапустила checksetup.pl, а затем уже recode.pl.
Заранее спасибо.
Отсутствует
Здравствуйте, Tuchka_84, а не поставить ли Вам что-то вроде phpMyAdmin?
Я знаю, Вы не боитесь текстов на английском, вот здесь подробно: http://dev.mysql.com/doc/refman/5.0/en/charset.html .
Кстати, наткнулся на интересное сообщение касательно koi8-r http://lists.mysql.com/mysql/120760
Отсутствует
На моей машине стоит только Bugzilla 3,2rc1.
Захотела импортировать старую базу багзилы.
Создала в Mysql пустую базу с нужным именем bugs. Импортировала её из sql дампа.
Настоятельно рекомендую разделить два процесса: перенос базы в новую среду и upgrade до 3.2rc1.
Установите на своей машине 2.20 и проимпортируйте базу туда. Станет понятно, был ли включен параметр 'utf8', кроме того, удастся выявить возможную разницу в настройках MySQL.
Параметр в 2.20 живет в том же месте что и в 3.2rc1.
Как только 2.20 заработает не хуже исходного -- включаем там utf8 (если не был включен) и запускаем checksetup.pl от 2.20.
После этого уже пробуем upgrade до 3.2rc1 и checksetup.pl, recode.pl, checksetup.pl
См. также
http://markmail.org/message/owb4mkvimq32run4
http://fixunix.com/mozilla/412192-troub … up-pl.html
Отсутствует
Установите на своей машине 2.20 и проимпортируйте базу туда.
Хорошо. Буду пытаться установить 2.20. Как что-нибудь получится напишу.
Отсутствует
Как только 2.20 заработает не хуже исходного -- включаем там utf8 (если не был включен) и запускаем checksetup.pl от 2.20.
Установила версию 2.20 на винду , установила туда базу .Все стало работать как на сервере (откуда была скопирована база). В багзиле utf8 был отключен.
MySQL версия : 4.0.21-nt-lo. status для базы выдает следующие настройки кодировки:
Current database: bugs Current user: root@localhost SSL: Not in use Server version: 4.0.21-nt-log Protocol version: 10 Connection: localhost vi Client characterset: latin1 Server characterset: latin1
Затем зашла в эту багзилу 2.20 и включила в настройках utf8. Запустила checksetup.pl :
C:\root\www\bugs>perl checksetup.pl Checking perl modules ... Checking for AppConfig (v1.52) ok: found v1.55 Checking for CGI (v2.93) ok: found v3.04 Checking for Data::Dumper (any) ok: found v2.121 Checking for Date::Format (v2.21) ok: found v2.22 Checking for DBI (v1.38) ok: found v1.50 Checking for File::Spec (v0.84) ok: found v0.87 Checking for File::Temp (any) ok: found v0.14 Checking for Template (v2.08) ok: found v2.13 Checking for Text::Wrap (v2001.0131) ok: found v2001.09291 Checking for Mail::Mailer (v1.67) ok: found v1.74 Checking for MIME::Base64 (v3.01) ok: found v3.01 Checking for MIME::Tools (v5.406) ok: found v5.411 Checking for Storable (any) ok: found v2.12 The following Perl modules are optional: Checking for GD (v1.20) ok: found v2.16 Checking for Chart::Base (v1.0) ok: found v2.3 Checking for XML::Twig (any) ok: found v3.22 Checking for GD::Graph (any) ok: found v1.43 Checking for GD::Text::Align (any) ok: found v1.18 Checking for PatchReader (v0.9.4) ok: found v0.9.5 Checking for Image::Magick (any) not found All the required modules are available at: http://landfill.bugzilla.org/ppm/ You can add the repository with the following command: ppm rep add bugzilla http://landfill.bugzilla.org/ppm/ If you want to convert BMP image attachments to PNG to conserve disk space, you will need to install the ImageMagick application Available from http://www.imagemagick.org, and the Image::Magick Perl module by running (as Administrator): ppm install Image::Magick Checking user setup ... Removing existing compiled templates ... Precompiling templates ... Checking for DBD::mysql (v2.9003) ok: found v3.0002 Checking for MySQL (v4.0.14) ok: found v4.0.21-nt-log Cleaning control characters from bug summaries... 6087... 27003... 27026... 27044... 27060... 27067. .. 27070... 27075... 27080... 27081... 27083... 27084... 27091... 27092... 27103... 27105... 27108.. . 27124... 27128... 27145... 27146... 27149... 27150... 27151... 27152... 27153... 27154... 27157... 27158... 27162... 27170... 27176... 27182... 27199... 27200... 27201... 27202... 27206... 27211... 27215... 27219... 27220... 27221... 27228... 27235... 27240... 27242... 27245... 27250... 27252... 2 7260... 27268... 27271... 27272... 27273... 27275... 27283... 27290... 27291... 27295... 27307... 27 328... 27340... 27342... 27343... 27345... 27352... 27353... 27354... 27355... 27359... 27363... 273 69... 27372... 27380... 27382... 27383... 27384... 27385... 27409... 27428... 27438... 27450... 2745 1... 27454... 27457... 27460... 27462... 27463... 27464... 27465... 27467... 27468... 27469... 27470 ... 27475... 27477... 27479... 27480... 27482... 27483... 27484... 27485... 27486... 27487... 27488. .. 27489... 27494... 27497... 27498... 27505... 27507... 27511... 27516... 27517... 27520... 27524.. . 27534... 27536... 27538... 27540... 27544... 27549... 27553... 27554... 27555... 27556... 27557... 27559... 27560... 27562... 27565... 27568... 27569... 27570... 27571... 27583... 27586... 27588... 27598... 27600... 27603... 27607... 27608... 27609... 27610... 27618... 27621... 27624... 27625... 2 7626... 27633... 27637... 27638... 27639... 27640... 27646... 27647... 27648... 27654... 27655... 27 656... 27658... 27659... 27666... 27667... 27669... 27670... 27671... 27672... 27673... 27678... 276 79... 27691... 27692... 27693... 27694... 27695... 27696... 27697... 27701... 27705... 27706... 2770 7... 27708... 27709... 27710... 27711... 27713... 27714... 27715... 27717... 27718... 27719... 27720 ... 27723... 27726... 27728... 27729... 27731... 27732... 27735... 27736... 27737... 27738... 27739. .. 27744... 27745... 27746... 27747... 27748... 27749... 27750... 27751... 27752... 27753... 27754.. . 27755... 27759... 27761... 27762... 27766... 27767... 27768... 27769... 27770... 27771... 27775... 27777... 27778... 27779... 27780... 27781... 27784... 27785... 27786... 27787... 27788... 27798... 27799... 27800... 27804... 27805... 27816... 27819... 27822... 27823... 27824... 27825... 27826... 2 7827... 27828... 27829... 27830... 27831... 27832... 27833... 27836... 27837... 27850... 27853... 27 855... 27858... 27867... 27868... 27900... 27901... 27902... 27903... 27905... 27911... 27913... 279 16... 27919... 27920... 27923... 27924... 27926... 27931... 27935... 27940... 27949... 27956... 2797 7... 27982... 27985... 28000... 28012... 28045... 28053... 28054... 28081... 28094... 28095... 28104 ... 28109... 28110... 28116... 28124... 28125... 28126... 28147... 28158... 28159... 28160... 28168. .. 28179... 28184... 28190... 28208... 28220... 28236... 28237... 28238... 28239... 28246... 28248.. . 28249... 28250... 28251... 28271... 28272... 28273... 28274... 28276... 28279... 28291... 28294... 28302... 28311... 28320... 28321... 28322... 28337... 28340... 28343... 28346... 28347... 28352... 28353... 28354... 28356... 28361... 28362... 28363... 28369... 28375... 28383... 28386... 28389... 2 8394... 28396... 28397... 28398... 28399... 28400... 28402... 28403... 28405... 28406... 28407... 28 408... 28409... 28410... 28420... 28421... 28422... 28435... 28436... 28441... 28442... 28443... 284 45... 28446... 28447... 28448... 28449... 28451... 28454... 28456... 28457... 28464... 28477... 2847 8... 28479... 28480... 28483... 28484... 28486... 28492... 28499... 28501... 28504... 28545... 28560 ... 28572... 28573... 28574... 28587... 28594... 28596... 28610... 28612... 28643... 28644... 28650. .. 28651... 28652... 28653... 28658... 28666... 28680... 28695... 28696... 28699... 28704... 28706.. . 28716... 28720... 28722... 28726... 28732... 28735... 28742... 28743... 28763... 28768... 28770... 28771... 28772... 28775... 28779... 28780... 28786... 28789... 28791... 28792... 28793... 28795... 28799... 28809... 28810... 28811... 28812... 28813... 28814... 28815... 28822... 28824... 28833... 2 8838... 28842... 28856... 28862... 28873... 28875... 28879... 28913... 28914... 28917... 28918... 28 921... 28922... 28927... 28938... 28940... 28945... 28947... 28948... 28953... 28960... 28961... 289 63... 28966... 28969... 28970... 28972... 28974... 28975... 28978... 28979... 28982... 28983... 2898 5... 28988... 28989... 28990... 28991... 28992... 28993... 28996... 28997... 28999... 29000... 29001 ... 29002... 29003... 29004... 29006... 29007... 29008... 29028... 29039... 29040... 29041... 29043. .. 29044... 29045... 29052... 29054... 29055... 29057... 29060... 29064... 29067... 29068... 29071.. . 29073... 29074... 29075... 29076... 29077... 29078... 29080... 29082... 29083... 29084... 29085... 29086... 29089... 29090... 29093... 29095... 29098... 29099... 29100... 29101... 29102... 29107... 29118... 29133... 29134... 29135... 29140... 29141... 29142... 29145... 29147... 29150... 29151... 2 9152... 29153... 29154... 29157... 29159... 29171... 29177... 29180... 29181... 29186... 29187... 29 188... 29189... 29194... 29195... 29196... 29197... 29201... 29202... 29203... 29204... 29205... 292 06... 29207... 29208... 29209... 29210... 29211... 29212... 29217... 29219... 29221... 29225... 2922 6... 29228... 29230... 29231... 29233... 29234... 29235... 29237... 29238... 29239... 29240... 29241 ... 29243... 29244... 29245... 29248... 29252... 29256... 29259... 29260... 29263... 29279... 29280. .. 29283... 29285... 29296... 29299... 29300... 29308... 29309... 29310... 29312... 29313... 29315.. . 29316... 29317... 29318... 29321... 29323... 29324... 29325... 29326... 29328... 29330... 29333... 29334... 29336... 29338... 29346... 29352... 29355... 29356... 29364... 29367... 29368... 29369... 29371... 29372... 29374... 29375... 29376... 29380... 29381... 29382... 29383... 29390... 29392... 2 9393... 29399... 29400... 29401... 29402... 29403... 29417... 29420... 29421... 29422... 29423... 29 424... 29430... 29431... 29432... 29437... 29438... 29439... 29441... 29444... 29455... 29457... 294 76... 29480... 29481... 29484... 29493... 29507... 29518... 29524... 29527... 29529... 29530... 2953 2... 29533... 29555... 29556... 29557... 29558... 29563... 29568... 29569... 29579... 29580... 29581 ... 29583... 29584... 29586... 29590... 29593... 29595... 29596... 29597... 29598... 29600... 29601. .. 29602... 29603... 29605... 29606... 29607... 29608... 29609... 29610... 29611... 29612... 29614.. . 29615... 29616... 29617... 29618... 29619... 29620... 29628... 29632... 29633... 29637... 29658... 29665... 29668... 29669... 29671... 29672... 29673... 29675... 29682... 29685... 29686... done. Now that you have installed Bugzilla, you should visit the 'Parameters' page (linked in the footer of the Administrator account) to ensure it is set up as you wish - this includes setting the 'urlbase' option to the correct url. C:\root\www\bugs>
После этого опять зашла в багзилу 2.20 все стало "аброкодаброй"(квадратиками). В Эксплорере по умолчанию стала указана кодировка utf8.Если там выбираю Кирилица (Windows), то отображается корректно.
При запуске mysql и проверке параметров базы с помощью status ничего для неё не изменилось везде latin1.
Вопрос: теперь мне с такой настройкой сделать dump и уже пытаться развернуть её на сервере с bugzilla 3.2 На Freebsd и Mysql 5.1.26-rc-log?
Заранее спасибо.
Отредактировано Tuchka_84 (03-11-2008 20:59:34)
Отсутствует
Вопрос: теперь мне с такой настройкой сделать dump и уже пытаться развернуть её на сервере с bugzilla 3.2 На Freebsd и Mysql 5.1.26-rc-log?
Да, именно так. Сомнения только в одновременном апгрейде MySQL и Bugzilla, но об этом будем думать только если текущий замысел не пройдет почему-либо.
Отсутствует
Вопрос(может быть глупый): На новом сервере Mysql пустую базу bugs создать с character set = utf8 или character set = latin1 (базу в которую буду делать импорт)? Когда устанавливаю bugzilla 3.2 rc1 она создает базу именно с character set = utf8. Могу попробовать оба способа.
Отсутствует
Результат остался тем же самым .
Описываю свои шаги:
1. Создала в FreeBSD c установленной bugzilla 3.2 rc1 базу bugs(charset по умолчанию)
2. Сделала импорт в эту базу бэкапа версии с ХР .
3.Вот что выдает для неё команда status:
mysql> use bugs; Database changed mysql> status; -------------- mysql Ver 14.14 Distrib 5.1.26-rc, for portbld-freebsd7.0 (i386) using 5.2 Connection id: 2 Current database: bugs Current user: root@localhost SSL: Not in use Current pager: more Using outfile: '' Using delimiter: ; Server version: 5.1.26-rc-log FreeBSD port: mysql-server-5.1.26 Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 UNIX socket: /tmp/mysql.sock Uptime: 3 min 59 sec
4.Заменила в localconfig имя базы на эту базу.
5.Вызвала checksetup.pl
6.Он выдал одну ошибку:
Converting table bugs_on_date... DBD::mysql::db do failed: The used table type doesn't support FULLTEXT indexes [for Statement "ALTER TABLE bugs_on_date TYPE = InnoDB"] at Bugzilla/DB/Mysql.pm line 298 Bugzilla::DB::Mysql::bz_setup_database('Bugzilla::DB::Mysql=HASH(0x94aa1f0)') called at ./checksetup.pl line 143 freeserver#
7.Эта таблица в этой базе создается командой:
CREATE TABLE `bugs_on_date` ( `bug_id` mediumint(9) NOT NULL auto_increment, `assigned_to` mediumint(9) NOT NULL default '0', `assigned` tinytext NOT NULL, `bug_file_loc` text, `bug_severity` varchar(64) NOT NULL default '', `bug_status` varchar(64) NOT NULL default '', `creation_ts` datetime default NULL, `delta_ts` datetime NOT NULL default '0000-00-00 00:00:00', `short_desc` mediumtext NOT NULL, `op_sys` varchar(64) NOT NULL default '', `priority` varchar(64) NOT NULL default '', `product_id` smallint(6) NOT NULL default '0', `product` tinytext NOT NULL, `rep_platform` varchar(64) NOT NULL default '', `reporter` mediumint(9) NOT NULL default '0', `version` varchar(64) NOT NULL default '', `component_id` smallint(6) NOT NULL default '0', `component` tinytext NOT NULL, `resolution` varchar(64) NOT NULL default '', `target_milestone` varchar(20) NOT NULL default '---', `qa_contact` mediumint(9) default NULL, `contact` tinytext NOT NULL, `status_whiteboard` mediumtext NOT NULL, `votes` mediumint(9) NOT NULL default '0', `keywords` mediumtext NOT NULL, `lastdiffed` datetime default NULL, `everconfirmed` tinyint(4) NOT NULL default '0', `reporter_accessible` tinyint(4) NOT NULL default '1', `cclist_accessible` tinyint(4) NOT NULL default '1', `estimated_time` decimal(5,2) NOT NULL default '0.00', `remaining_time` decimal(5,2) NOT NULL default '0.00', `deadline` datetime default NULL, `alias` varchar(20) default NULL, PRIMARY KEY (`bug_id`), UNIQUE KEY `bugs_alias_idx` (`alias`), KEY `bugs_assigned_to_idx` (`assigned_to`), KEY `bugs_creation_ts_idx` (`creation_ts`), KEY `bugs_delta_ts_idx` (`delta_ts`), KEY `bugs_bug_severity_idx` (`bug_severity`), KEY `bugs_bug_status_idx` (`bug_status`), KEY `bugs_op_sys_idx` (`op_sys`), KEY `bugs_priority_idx` (`priority`), KEY `bugs_product_id_idx` (`product_id`), KEY `bugs_reporter_idx` (`reporter`), KEY `bugs_version_idx` (`version`), KEY `bugs_component_id_idx` (`component_id`), KEY `bugs_resolution_idx` (`resolution`), KEY `bugs_target_milestone_idx` (`target_milestone`), KEY `bugs_qa_contact_idx` (`qa_contact`), KEY `bugs_votes_idx` (`votes`), FULLTEXT KEY `bugs_short_desc_idx` (`short_desc`) ) TYPE=MyISAM PACK_KEYS=0;
что не понравилось скрипту checksetup.pl в этой таблице не знаю, но после удаления таблицы bugs_on_date я запустила checksetup.pl и дашла до места:
WARNING: We are about to convert your table storage format to UTF8. This allows Bugzilla to correctly store and sort international characters.
и нажала Ctrl-C чтобы выполнить перекодировку.
8.Выполнила команду ./contrib/recode.pl --guess --show-failures --charset=latin1 но получила теже самые кучу ошибок:
Failed to guess: Key: L1q7c5kkNIboprBLt0NVTQ DATA: ц░ц╔цєц═ц╙ц╡ц╝ц╟ ц╠ц╣ц╔ц╛ ц╗ ц╝ц╡цЇц╔ц╡ц╝ц╒: ... Row: [id = 1368] Failed to guess: Key: 7i18ZbEQOVFxtbLy/gGn4A DATA: ц└ц╝ц╙цЁц╛ц╔цґц╡ц═цІц╗ц©: ц╟цЁц╙ц╝ц╒ц╝цєц╠ц╡ц╒ц╝... Converting fielddefs.name... Converting fielddefs.description... Row: [fieldid = 53] Failed to guess: Key: pPTTnYhqYOv15wChILAtxA DATA: ц┬ц╠ц╞ц╟ц═ц╒ц╚ц╔цґц═ Table fixes_bugs does not exist in the database schema. at Bugzilla/DB/Schema.pm line 1632.
На этом recode.pl остановился.
Т.е. включение в настройках в версии 2,20 utf8 не помогло. Ошибки остались теже.
Что еще сделать не знаю.
Отсутствует
Затем запустила contrib/recode.pl --guess --show-failures --charset=koi8r
Bugzilla 2.20 установлена на чужой машине на Windows
Если там выбираю Кирилица (Windows), то отображается корректно
Выполнила команду ./contrib/recode.pl --guess --show-failures --charset=latin1
Все это наталкивает на мысль, что база все же в кодировке Windows. Если это так, надо
и никаких --guess
Отсутствует
Восстановила базу из бэкапа и продела опять checksetup и затем :
freeserver# ./contrib/recode.pl --show-failures --charset=cp1251 Converting attachments.description... Converting attachments.mimetype... Converting attachments.filename... Converting bug_severity.value... Converting bug_status.value... Converting bugs.bug_file_loc... Converting bugs.bug_severity... Converting bugs.bug_status... Converting bugs.short_desc... Converting bugs.op_sys... Converting bugs.priority... Converting bugs.rep_platform... Converting bugs.version... Converting bugs.resolution... Converting bugs.target_milestone... Converting bugs.status_whiteboard... Converting bugs.keywords... Converting bugs.alias... Converting bugs_activity.added... Converting bugs_activity.removed... Converting bugs_fulltext.short_desc... Converting bugs_fulltext.comments... Converting bugs_fulltext.comments_noprivate... Converting classifications.name... Converting classifications.description... Converting components.name... DBD::mysql::st execute failed: Duplicate entry '1047-п≤пЇпЄп╣п╩п╦я▐ п╨я─п╣п©п╣пІпҐя▀п╣ пЄп╩я▐ я└п╩п╟пҐя├п╣п╡я▀я┘' for key 'components_product_id_idx' [for Statement "UPDATE components SET name = ? WHERE id = ?" with ParamValues: 1='1280', 0='п.пЇпЄп╣п╩п╦я. п╨я.п╣п©п╣пІпҐя.п╣ пЄп╩я. я.п╩п╟пҐя.п╣п╡я.я. я.п╬п╣пЄп╦пҐп╣пҐп╦п╧. п.п╬п╨я.п╪п╣пҐя.п╟я.п╦я.'] at ./contrib/recode.pl line 299 freeserver#
Может еще чтото попробовать?
Отсутствует
Ура у меня кое-что получилось.
Проблема в таблице components действительно заключалась в том что utf занимает в 2 раза больше и varchar(64) не хватало при перекодировке.
Описываю что мне удалось сделать:
Сделала дамп одной таблицы components исходной базы. С помощью программы Штирлиц открыла дамп этой таблицы и перекодировала её в utf8.
Попыталась залить её в новую базу но mysql при импорте таблицы выводил warning-и, потом я тестовым скриптов вывела выборку из этой таблицы и действительно при импорте у некоторых записей "укоротились" значения в столбце name.
Поэтому я в дампе для таблицы components изменила name varchar(64) на name varchar(128) и все прошло отлично. Таблица полностью залилась в базу без единого варнинга. Выборка тестовым скриптом также вывела что все данные на месте.
Теперь буду "крутить" остальные таблицы.
Отсутствует
Держали небольшой совет в Филях http://bugzilla.glob.com.au/irc/?a=date … ov+25+2008.
Японские коллеги делали это отдельным скриптом из базы в базу http://www.mozilla.gr.jp/~shimono/transcode.pl. Скрипт статичен по отношению к версии БД.
Отсутствует
Превосходно!
recode.pl официально поддерживается, это стоит эскалировать на bugzilla.mozilla.org
Т.е. мне нужно создать ошибку с описанием проблемы при перекодировке старой базы версии 2.20 в 3.2 rc1?
Отсутствует
Теперь я уже ничего не понимаю
Перекодировала все таблицы из cp1251 в utf-8. Затем вызвала checksetup.pl он насоздавал дополнительных таблиц столбцов и т.д.
Зашла в багзилу там все равно все данные "аброкодаброй".
Написала простой скрипт выборки для таблицы bugs
my $sth = $dbh->prepare ("SELECT bug_id, short_desc FROM bugs WHERE (bug_id > 30000) LIMIT 45"); $sth->execute(); my $count =0; while (my @val = $sth->fetchrow_array()) { print " bug_id: $val[0] short_desc: $val[1] \n"; print "<br>"; ++$count; } $sth->finish(); print "$count rows were returned\n";
Вызываю его из того же Эксплорера что и багзилу, включаю туже кодировку Юникод (UTF-8) и все ошибки выводятся русскими буквами нормально. Т.е. в базе хранятся именно данные в utf-8.
Теперь я уже не знаю что и делать.
В настройках багзилы UTF-8 Включен.
Отсутствует
Когда устанавливала багзилу 3.2rc1 она автоматически создала пустую базу ( я её назвала bugstest).
Создала в этой тестовой базе пару ошибок с русским наименованием. В самой багзиле они отображаются корректно.
Но когда я создала и для этой базы тестовый скрипт:
my $sth = $dbh->prepare ("SELECT bug_id, short_desc FROM bugs "); $sth->execute(); my $count =0; while (my @val = $sth->fetchrow_array()) { print " bug_id: $val[0] short_desc: $val[1] \n"; print "<br>"; ++$count; } $sth->finish(); print "$count rows were returned\n";
И вызвала его из Эксплорера с кодировкой utf-8 все русские наименования отображаются знаками вопроса.
Может все таки не в utf-8 хранятся данные в багзиле а как то еще?
Отсутствует
УРА УРА УРА
У меня все же получилось перенести базу .
Как оказалось без recode.pl всеже не обойтись.
Описываю как перенести базу из 2.20 в 3.2 rc1:
1. Из дампа базы с 2.20 импортировать данные в базу( в кодировке latin1 !!!)на новом сервере
2. Если в этой базе есть таблицы не из схемы багзилы (т.е. те которые добавлялись вручную их нужно будет сохранить в дамп и перед декодировкой удалить)
3. В localconfig установить db_name= развернутой базе из версии 2.20.
4.Вызвать checksetup.pl
5.Он переделает таблицы в TYPE InnoDB должен написать что необходимо вызвать ./contrib/recode.pl для этого нажмите Ctrl+C
6.Вызвать ./contrib/recode.pl --show-failures --charset=cp1251
7. Если будут возникать ошибки перекодировки и перекодировка остановится, как возникли у меня в таблицах : components, products, series_categories я в дампах этих таблиц увеличила размер с varchar(64) на varchar(128) для с столбцов для которых возникает ошибка. Восстановила эти таблицы вновь( с новым размером столбцов)
8.Вызвала recode.pl вновь и дождалась победного конца
9.Затем опять checksetup.pl . Когда он опять предложил перекодироваться нажала Enter(для продолжения)
10.Этот скрипт сам преобразовал мне все таблицы, добавли еще необходимые таблицы и столбцы.
11.Затем запустила багзилу и все заработало . УРА. я так рада. Конечно у некоторых записей возможно урезались какие-то поля, но это смогу определить только при работе с базой.
Как заключение iconv -f cp1251 -t utf-8 мне не помог recode.pl перекодирует похоже как-то по-другому. Поэтому советую использовать ИМЕННО его при переходе с багзилы 2,20 на 3,2
Отсутствует
А на этапе 1. он кириллицу не гробит? Интересно, почему?
Потому что исходная база на Mysql 4.0 тоже была запихнута в db charset =latin1. И работала нормально.
Отсутствует
Здравствуйте,
У меня возник еще вопрос:
Можно ли перекодировать с помощью recode.pl не только стандартные таблицы багзилы, но и свои из этой же базы?
Как я уже писала при вызове recode.pl для базы, у которой есть не стандартные таблицы, скрипт на этом останавливается:
Table fixes_prefs does not exist in the database schema. at Bugzilla/DB/Schema.pm line 1632.
Разобраться в Schema.pm чтобы там к примеру дописать эти таблицы в список я не смогла. Может кто-то уже делал такое?
Вот код на котором останавливается recode.pl:
sub get_table_list { 1618 1619 =item C<get_table_list> 1620 1621 Description: Public method for discovering what tables should exist in the 1622 Bugzilla database. 1623 1624 Parameters: none 1625 1626 Returns: An array of table names, in alphabetical order. 1627 1628 =cut 1629 1630 my $self = shift; 1631 return sort keys %{$self->{schema}}; 1632 }
Заранее спасибо.
Отсутствует