Postgres sam tworzy tabele?

0

Mam dziwny problem, piszę program w Delphi przy użyciu Zeos'a. Zaraz po wykonaniu kwerendy CREATE DATABASE Postgres tworzy mi nie tylko bazę danych ale też strukturę tabel i to ze starej wersji programu. Co ciekawe nawet gdy baza jest nowa i jeszcze takiej nazwy nie podawałem mam zbudowane tabele. O co tu chodzi?

0

postgres nic nie tworzy sam z siebie

0

przejedź się debugerem po programie, przejdź linijka po linijce przez kod i sam zobaczysz, że wykonuje się znacznie więcej, niż Ci się wydaje. ani Twój program, ani żadna baza danych nie dodaje spontanicznie żadnych tabel (poza ewentualnymi tabelami systemowymi).

0

Nie pisałbym gdybym nie sprawdził najpierw debuggerem. Nie ma bazy. Uruchamiam debuggera aż do momentu przed procedurą tworzącą. Dalej bazy nie ma. Wykonuję CREATE DATABASE i nic więcej, patrzę do pgAdmin i mam 17 tabel ze starej wersji programu

0

Jak usuwales stara baze? Najwyrazniej zostaly jakies wpisy/pliki starej bazy. I teraz jak tworzysz nowa o tej samej nazwie to zostaje odnowione powiazanie miedzy nazwa bazy a istniejacymi danymi.

0

Też tak myślałem, więc zrobiłem nową bazę jakiej jeszcze nie używałem... To samo.

Doszedłem do wniosku żeby przeinstalować postgres'a bo może coś z nim nie tak. Ale nie wiem czy nie skończy się na przeinstalowaniu Windows :) Chyba szybciej wyjdzie

ps. Dodam że program jest dwu-bazowy i na mySQL'u wszystko chodzi w porządku

0

I rozumiem, ze po tym jak znowu powstaje gotowa baza, dajesz drop database, pozniej create database i tez jest? A co jesli wykonasz create w samym postresie, nie z poziomu swojego programu?

0

Z pgAdmin'a też tworzy. Wpisałem create database new_db;

Co ciekawe mam nie tylko bazę z tabelami, ale nawet jakieś dane, które wpisywałem tydzień temu :)

Przeistalowywałem postgresa chyba 4 razy. Za każdym razem zapamiętuje pierwszą bazę, na której go uruchamiam i później jak coś tworzę, postgres konsekwetnie buduje mi strukturę pierwszej bazy danych

0

Dalej nie napisales jak usuwasz baze... Prosze o kod.

0

A jak się łączysz z bazą, używasz żródła danych (systemowego, plikowego)? To coś jakby plik konfiguracyjny dla bazy danych i jest tam też m.in. wpis DATABASE=baza_danych(domyslnie postgres), byc moze program uparcie laczy ci sie z tą bazą bo np tego nie zmieniasz... oczywiscie tak tylko zgaduje...

0

moze zle sie wyrazilam, nie tyle laczy co traktuje jako wzor, zrodlo danych dla nowej bazy

0

Jesli wlasnie nie odkryles jakiegos komputerowego zombie, to znaczy po prostu, ze masz odpalone kilka instancji serwera (lub tez kilka roznych serwerow, do wyboru). Tworzysz baze na jednym, a sprawdzasz zawartosc drugiego. Innej mozliwosci po prostu nie ma :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1