![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 9.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chciałbym zmapować tabelę z bazy mssql, niestety podczas takiej próby pojawia się błąd: Table xxx has no primary key. Doctrine does not support reverse engineering from tables that don't have a primary key. Oczywiście tabela xxx jest inną tabelą niż ta którą chcę zmapować. Czy może mi ktoś podpowiedzieć jak mogę rozwiązać taką sytuację? Tabela xxx jest nie do ruszenia, ponieważ wykorzystywana jest gdzie indziej |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 144 Dołączył: 22.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jak mapujesz? Wrzuć co wykonujesz.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 9.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zaczynam od tego:
console doctrine:mapping:convert yml ./src/My/MyBundle/Resources/config/doctrine/metadata/orm --from-database --force --em=moja_baza --filter=nazwa_tabeli Już tutaj pojawia się błąd. To samo dzieje się przy console doctrine:mapping:import Ten post edytował Michal_Sz 17.03.2015, 20:59:59 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 40 Dołączył: 20.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
W czym problem? Doctrine po prostu nie umożliwia wykonania takiej operacji na tabeli która nie ma klucza głównego. Dodaj ten klucz na kopii tabeli albo mapuj ręcznie.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 9.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ok, ale dlaczego podczas mapowania tabeli_1 błąd ma związek z inną tabelą tej bazy?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem, że angielskiego można nie znać ale jaki problem to przetłumaczyć, te komunikaty są napisany dla ludzi wystarczy to przeczytać i masz odpowiedź (IMG:style_emoticons/default/smile.gif) jak nie znasz podstaw relacyjnych baz danych to nie ma co iść dalej, najpierw trzeba się wtedy z nimi zapoznać (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 9.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem co mówi komunikat, czy chodzi o to, że tabela którą chcę zmapować jest powiązana z tabelą której dotyczy błąd?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
http://www.wikiwand.com/pl/Klucz_g%C5%82%C3%B3wny Tak chodzi o zachowanie relacji, bo operujesz na bazie relacyjnej a nie nosql (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 9.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie tak przypuszczałem, ale tabela którą chciałbym zmapować nie jest powiązana z żadną inną.
Co w tym wypadku mi pozostaje? Ręczne stworzenie Entity? |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Klucz główny do tabeli dodałeś już?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 9.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
NIe, ponieważ tak jak wspominałem wcześniej nie mogę nic zmieniać w tej tabeli dlatego szukam rozwiązanie na zmapowanie tabeli która oczywiście ma klucz główny.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 40 Dołączył: 20.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wygląda na to, że pomimo użycia parametru filter analizowana jest cała baza danych, natomiast wspomniany filtr ogranicza jedynie to co generator wypluwa.
Zrób sobie kopię tej bazy danych, dodaj klucz główny albo skasuj tabelę, która powoduje problem i wtedy zrób mapowanie. Głównym celem Doctrine jest co innego niż mapowanie obiektów na podstawie bazy danych więc nie ma się co spodziewać rewelacji w tej kwestii. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 9.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Chyba rzeczywiście nie pozostaje mi nic innego jak stworzenie bazy z kopią interesującej mnie tabeli, zmapowanie tabeli i korzystanie z niej na oryginalnej bazie.
Bo rozumiem, że takie rozwiązanie nie będzie generować problemów ? |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
No ale ustawienie klucza nie wygeneruje Ci problemów, chyba ze chodzi o to że nie masz gdzie go postawić, ale to wtedy baza jest źle zbudowana (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 9.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
niestety nie wiem czy udałoby się coś zmienić w bazie pod kątem kluczy, ponieważ z bazy korzystają inne programy, ja jedynie potrzebuje skorzystać z kilku tabel.
Dlatego najlepszym rozwiązaniem będzie stworzenie kopii bazy, ale tylko z tymi kilkoma tabeli i zmapowanie ich, a potem korzystanie na orginalnej bazie, chyba że się mylę? |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 40 Dołączył: 20.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak będzie najlepiej. Nic nie stoi na przeszkodzie żebyś tak zrobił.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 14:07 |