en
Език
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
AI превод
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Мигрирайте от Postgres към MySQL

Въведение

За ваше добро, администраторите на сървъри на Easy Redmine, тествахме няколко инструмента за миграция на БД от Postgres към MySQL.

Единият е безплатен с отворен код, но също така и по-стар и със значителен недостатък. Другите бяха първокласни инструменти с резултати, които според нас си заслужават покупката.

Безплатна опция - pg2mysql php скрипт

Опровержение: Този инструмент е разработен от трета страна => НЕ Е продукт на Лесен софтуер и следователно НЕ Е ГАРАНТИРАН.
Тестваният инструмент е достъпен на:
http://www.lightbox.ca/pg2mysql.php
Направихме собствени модификации на инструмента, за да работи с php 7.4. Въпреки това използването все още е на собствен риск и ние не предоставяме никакви гаранции.

Стъпки за миграция

1. Изтеглете скрипта и разопаковайте архива

Wget http://www.lightbox.ca/pg2mysql/pg2mysql-1.9.tar.bz2  (съдържа оригинален скрипт от автора)
Wget https://www.easyredmine.com/ER/media/knowledge-base/pg2mysql-1.9.zip (съдържа нашия модифициран скрипт за php версия 7.4)

tar -xvf pg2mysql-1.9.tar.bz2(в случай на оригинален сценарий от автора)
разархивирайте pg2mysql-1.9.zip (в случай на нашия модифициран скрипт за php версия 7.4)

2. Инсталирайте php

sudo apt инсталира php7.4-cli (в случай на нашия модифициран скрипт)

3. Създайте дъмп на база данни PostgreSQL във формат .sql, уверете се, че използвате "--format p --inserts"

sudo -u postgres pg_dump --format p --inserts DBNAME_HERE> /path/to/file.sql

4. Преминете към папка pg2mysql-1.9

cd pg2mysql-1.9 /

5. бягане

php pg2mysql_cli.php /path/to/pd/dump/file.sql /path/where/to/save/mysql/file.sql

Ще видите няколко реда като

Завършен! 30820 линии 5539 кв. Парчета

Забележки:
 - Не, не е перфектно
 - Да, отхвърля ВСИЧКИ съхранени процедури
 - Да, отхвърля ВСИЧКИ заявки с изключение на CREATE TABLE и INSERT INTO 
 - Да, можете да ни изпратите имейл предложения: info [AT] lightbox.org
    - В имейлите, моля, включете кода на Postgres и очаквания MySQL код
 - Ако имате проблеми със създаването на вашето изхвърляне на postgres, не забравяйте да използвате "--format p --inserts"
 - Изходният механизъм по подразбиране, ако не е посочен, е MyISAM "

6. Сега ще бъде създаден файл с модифициран sql dump. Горещо ви съветваме да преминете през него и да замените MyISAM с InnoDB навсякъде

7. Сега можете да възстановите този дъмп в ясна база данни на mysql.

8. Тъй като (както авторът ни уведоми) скриптът не записва индекси, трябва да ги добавите ръчно към всяка таблица (ще работи без индекси, но може да причини сериозни проблеми с производителността). Има списък с всички индекси, които трябва да съществуват в MySQL таблици, генерирани от обикновеното приложение Easy Redmine. Трябва да ги добавите ръчно или чрез собствен персонализиран скрипт.

В мрежата има и други безплатни инструменти. Резултатите от нашите тестове обаче не бяха задоволителни за тези.

Надградете управлението на проекти

Получете функции на Redmine от следващо ниво, които се адаптират към вашите нужди и ви предоставят перфектен преглед.

Премиум инструмент - DB Convert за MySQL & PostgreSQL v. 4.3.5

Тествахме общо 3 премиум инструмента. DBConvert се почувства като най-подходящ, затова описваме подробните стъпки за него.

Начин на приготвяне:

1. Уверете се, че базите данни MySQL и PostgreSQL са достъпни отвън (може да го разрешите временно).

2. Уверете се, че можете да влезете в двете dbs с потребител и парола

3. Инсталирайте инструмента от - https://dbconvert.com/postgresql/mysql/

Започнете преобразуването:

1. Стартирайте съветника.

2. Изберете база данни Source:
PostgreSQL
Име на хост: ip или име на домейн на сървъра, на който е инсталиран postgres db.
Порт: ако се различава от стандартния
Потребителско име: потребителското име, с което db ще конвертирате, е достъпно
Парола: парола за потребител по-горе.

Щракнете върху бутона Тест на свързване Приложението ще провери дали е възможно да се свържете с изходния db сървър с избран потребител и парола. Ако е възможно, списъкът с бази данни ще бъде качен - вземете правилната.

3. Щракнете върху "Напред". Приложението ще се свърже с postgres и ще получи списъка с таблици, налични в базата данни. Можете да изберете всички да бъдат конвертирани или само един/няколко от тях.

4. Изчакайте малко и ще бъдете пренасочени към следващата стъпка - настройки за връзка на MySQL.
Име на хост: ip или име на домейн на сървъра, където е инсталиран mysql db.
Порт: ако се различава от стандартния
Потребителско име: потребителското име, с което db ще конвертирате, е достъпно
Парола: парола за потребител по-горе.

Щракнете върху бутона Тест на свързване Приложението ще провери дали е възможно да се свържете с изходния db сървър с избран потребител и парола. Ако е възможно, списъкът с бази данни ще бъде качен - вземете правилната.

5. На следващата стъпка приложението ще провери базата данни на източника и ще ви даде някои препоръки как да решите възможни проблеми.

Срещнахме следващия проблем:

Таблица "промени" поле "действие". В оригиналната DB беше тип "CHAR (1)". Но стойността по подразбиране беше "", така че Mysql предполагаше, че не е валидна. Можете да изберете нов тип. Избрахме CHAR (2) и щракнахме Напред. Проблемът беше отстранен.

Повторете подобни действия с други проблемни полета.

6. Щракнете върху Напред още веднъж. Приложението ще започне преобразуване, показвайки ви общия и текущия напредък. Изчакайте, докато преобразуването приключи.

7. Щракнете върху „Изход“. Преобразуването се извършва.

Авторът на този инструмент предоставя поддръжка за плащащи клиенти.

Цена: $ 149 (еднократно)

Други премиум опции

Тествахме и пробни версии на тези инструменти. Ето общи коментари за тях:

  • pgs2scld (https://www.convert-in.com/pgs2sql.htm)
    Няма проблеми с свързването към база данни (няма нужда да инсталирате допълнителни драйвери или да ги настройвате по някакъв начин или нещо друго). Има пробна версия (в пробен режим копира само 50 записа на таблица, но проверява всички редове и показва същия напредък, както ако е била копирана цялата база данни). Има вътрешен дебъгер и показва възможни проблеми с миграцията. Има много различни опции, които могат да бъдат приложени по време на миграция. Има денонощна поддръжка за платени клиенти. Само потребителски интерфейс, Windows само
    Цена $ 49 (еднократно).
  • Набор от инструменти за миграция на база данни на ESF (https://www.dbsofts.com/articles/postgresql_to_mysql/)
    Няма проблеми с свързването към база данни (няма нужда да инсталирате допълнителни драйвери или да ги настройвате по някакъв начин или нещо друго). Има пробна версия (в пробен режим копира само 50000 записа). Има вътрешен дебъгер и показва възможни проблеми с миграцията. Има много различни опции, които могат да бъдат приложени по време на миграция. Има денонощна поддръжка за платени клиенти. Само потребителски интерфейс, Windows само
    Цена $ 322 (еднократно).

Опитайте Easy Redmine за 30 дни безплатен пробен период

Пълни функции, SSL защитени, ежедневни архиви, във вашето геолокация