Wpis z mikrobloga

#mysql #postgresql #bazydanych
Mirko, taki temat jest. Mam bazę danych programu X - MySQL. Muszę ją przerzucić do bazy danych programu Y - Postgres. Niestety, nie mogę zrobić tego 1:1. Program X na przykład dla klienta ma kolumny w tabeli o nazwach "name" i "lastname", a program Y "firstname" i "lastname". Jest tego kilkadziesiąt tysięcy wierszy w różnych tabelach. Jak to zrobić najbardziej bezboleśnie? Wyeksportowałem sobie CSV z PHPMyAdmin, ale przy próbie importu (mam SQLPro for Postgres) wyrzuca syntax error. Ktoś przerabiał coś takiego?
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@rolfik_r1: a bym napisał nawet jakiś głupi skrypt w pehapie i tak to "przekopiował" rekord po rekordzie.

Rozumiem wyeksportowałeś do csv, zmieniłeś nazwy kolumn i sprawdzięłś czy liczba kolumn miedzy jedną i drugą bazą (tabelą) jest taka sama?
  • Odpowiedz
@foxbond: jestem noobem w tych sprawach więc używam graficznego narzędzia - tam pokazuję jaka kolumna ma trafić do jakiej w drugiej bazie i mam opcję SKIP na kolumnach, których nie mam - na przykład jeden program trzyma adresy klientów w tabeli razem z klientami, drugi ma oddzielną tabelą do tego.
  • Odpowiedz
@rolfik_r1: No to musisz to zrobić tak, żeby było lepiej. Im zrobisz to dokładniej i kolumna po kolumnie tym będzie bezboleśniej, ale i nie szybko.
A jak użyjesz jakiś migratorów to może się okazać, ze więcej czasu znajdziesz na szukaniu tego jedynego odpowiedniego, który uwzgledni wszystkie różnice.
No i jeszcze kwestia pytań na które trzeba odpoweidzieć gdy takie się pojawią. Np różne typy zmiennych, kodowania, obiekty typów, triggerów czy co
  • Odpowiedz
@rolfik_r1: Dlatego export do csv, zmiana w excelu pod strukturę docelową i import w strukturze docelowej to najbardziej bezbolesna metoda nad którą masz pełną kontrolę.
Albo narzędzie, które skopiuje ci całe obiekty z Bazy a do bazy B w formie 1:1 i dopiero w bazie B odpowiednie selecty i inserty, które przekształcą obiekty w taki sposób, aby nadawały się do pracy dla aplikacji Y
  • Odpowiedz