Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Import bazy
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
Martinez31
Witam,

Proszę o informację jak zaimportować bazę do PostgreSQL??

Stworzyłem z nową tabelę o nazwie samochody_służbowe.
Baza do importu jest pliku Excel format xlsx.

Zmieniłem format pliku na csv, ale niestety to nie pomogło.

Pozdrawiam.
b4rt3kk
A w jaki sposób próbowałeś?

Możesz to zrobić bezpośrednio na serwerze:

  1. COPY tabela FROM 'scieznka/do/pliku/plik.csv' WITH (FORMAT csv);


Lub poprzez klienta, np. pgAdmina. Tutaj masz graficzny interface i być może będzie prościej.

Istnieje jeszcze phppgadmin, ale tutaj nie wiem jak wygląda import, bo nie korzystam.
Martinez31
Witam,

W swoim pierwszym zapytaniu źle się wyraziłem, dlatego teraz sprecyzuje z czym mam dokładnie problem, a mianowicie:

Bazę już mam, składa się ona z 6 tabel, obecnie do bazy dodałem jeszcze jedna tabelę o nazwie "samochody służbowe".
Do tabeli "samochody służbowe" muszę wprowadzić nowe rekordy, jest ich około 150.
Wszystkie potrzebne dane mam w pliku Excel w standardowym formacie.

Dotychczas podjęte działania, celem zaimportowania danych:

- próbowałem zaimportować dane do kolumn wybierając przycisk IMPORTUJ następnie poprzez wybór właściwego pliku oraz jego formatu próbowałem wykonać import - niestety bez powodzenia
b4rt3kk
Ale czym to importowałeś? Jakimś klientem desktopowym bazy?

Daj próbkę pliku csv.
Martinez31
korzystam z pgAdmin III

Jak mogę wstawić print screen z czynnościami które wykonuje??
b4rt3kk
Musisz zuploadować obrazek gdzieś na jakiś hosting. Później dodając odpowiedź masz na górze możliwość wrzucenia obrazka.

Ja bym jednak polecał wysłanie pliku na serwer poprzez scp, zalogować się po ssh i odpalić zapytanie, które Ci zapodałem kilka odpowiedzi wcześniej.

Dodaj też koniecznie próbkę pliku csv, chociażby jeden wiersz.

Otwierałeś ten plik edytorem tekstowym i patrzyłeś czy ma odpowiednią budowę?
Martinez31
skorzystałem z Twojej pomocy i próbowałem wprowadzić plik do tabeli za pomocą poniższego zapytania:

COPY samochody_służbowe FROM 'C:\Users\Piotrek\Desktop\auta2.csv' WITH (FORMAT csv)

pojawi sie błąd:
BŁĄD: nie można otworzyć pliku "C:\Users\Piotrek\Desktop\auta2.csv" do odczytu: Permission denied

********** Błąd **********

BŁĄD: nie można otworzyć pliku "C:\Users\Piotrek\Desktop\auta2.csv" do odczytu: Permission denied
Stan SQL: 42501
b4rt3kk
Co to jest za serwer? Stoi lokalnie?
Martinez31

Niestety nie potrafię udzielić na to pytanie poprawnej odpowiedzi.

Na kompie zainstalowałem pgAdnim oraz postgre sql , bazę miałem z szkoleń.
mmmmmmm
Zanim zaczniesz importować, zamknij Excela, w którym masz otwarty ten plik. To on trzyma na wyłączność.
Martinez31

Niestety nadal pokazuje się ten sam błąd błąd.
b4rt3kk
Cytat(Martinez31 @ 15.07.2018, 22:46:18 ) *
Niestety nie potrafię udzielić na to pytanie poprawnej odpowiedzi.

Na kompie zainstalowałem pgAdnim oraz postgre sql , bazę miałem z szkoleń.


Czyli baza stoi na Twoim własnym kompie? Z tego co widzę po ścieżkach do pliku to jest to windows. Więc kliknij prawym na ten plik, wybierz właściwości, a następnie przejdź do zakładki ochrona/bezpieczeństwo (nie wiem jak to jest w polskim win, ale w każdym razie będziesz tam mieć listę uprawnień do pliku dla różnych userów). Nie wiem czy na windowsie postgres ma własnego usera, ale jeśli ma to daj mu wszystkie uprawnienia do pliku csv. Jeśli nie ma, to daj po kolei wszystkim użytkownikom pełne uprawnienia i spróbuj zapytanie odpalić ponownie.
Martinez31
Tak, baza jest na moim prywatnym kompie. korzystam z Windowsa 10.

zrobiłem wszystko zgodnie z Twoimi zaleceniami i .....nadal nic.

Nie ukrywam że nie mam już siły by dalej z tym walczyć.

Dzięki za chęć pomocy ale zakończmy już ten temat, może kiedyś do niego wrócę jak podszkolę się z SQL.

Pozdrawiam serdecznie.
trueblue
Sprawdź jeszcze dokładnie te uprawnienia: https://stackoverflow.com/questions/1408331...le-from-pgadmin
Martinez31
Chyba jest jakiś progres Jest jakiś progres.

zapytanie:

COPY samochody_służbowe FROM 'C:\Users\Piotrek\Desktop\MyImport\auta.csv' WITH (FORMAT csv);

teraz mam komunikat.

BŁĄD: niepoprawna sekwencja bajtów dla kodowania "UTF8": 0xf3 0x64
CONTEXT: COPY samochody_służbowe, linia 1

********** Błąd **********

BŁĄD: niepoprawna sekwencja bajtów dla kodowania "UTF8": 0xf3 0x64
Stan SQL: 22021
Kontekst: COPY samochody_służbowe, linia 1

Ten komunikat sugeruje mi że może być coś nie tak z plikiem csv., który to próbuje zaimportować.
mmmmmmm
Plik wyeksportowany z Excela standardowo na kodowanie ANSI. Czyli podczas importu musisz miec ustawione
(po kolei zakładki):
Opcje pliku
- nazwa pliku,
- typ pliku : csv
- Kodowanie: WIN1250
Kolumny - zazwyczaj się nic nie zmienia, jesli liczba kolumn w pliku i tabeli się zgadza... Czasem ID się wyłącza
Różne -
- OID - nie wiesz co to, to nie ruszasz smile.gif
- Nagłówek - standardowo w CSV jest, więc zaznaczasz
- Ogranicznik - w CSV z Excela jest to ",", ale musisz sprawdzić
Opcje cytatu i Opcje NULL - nic nie ruszasz.

Musi póść - setki, jak nie tysiące razy robiłem.
Martinez31
Działa thumbsupsmileyanim.gif , Serdecznie dziękuje za pomoc.

Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.