Open rapotek opened 6 years ago
Related with #1148
@rapotek, na szybko:
ja też kiedyś robiłem takie analizy i tutaj spisałem moje "odkrycia": stara analiza bazy
Some tables are used in `/xml/ocxml11.php' file only. What is the purpose of this file?
ocxml jest starym projektem udostępniania danych OC na zewnątrz - teraz w razie takich potrzeb mamy OKAPI i replikację - ocxml używane jest nadal przez serwis geokrety.org
powertrail_progress to moja robota i ja planuję uzywac tej tabeli przy refaktoringu geościeżek
@rapotek I've edited your first post to add some remmarks in table.
@rapotek, @deg-pl myślę, że warto by może uaktualnić ten mój dokument albo zrobić nowy ja coś-niecoś wiem o niektórych tabelach, ale wpisywanie tego wszystkiego w komentarzach chyba mija się z celem. rapotek, jeśli chcesz dalej ciągnąc temat myślę, że to dobry kierunek.
Ogólnie to sprzątanie bazy jest tak samo trudne (w wielu miejscach) jak kodu - i tak samo niezbędne. Mamy wiele tabel w których sa np. tłumaczenia, albo konfiguracje i warto by to było mieć w kodzie, ale zmiana tego wymaga często rozległych zmian również w kodzie.
@kojoty zrobić nowy dokument uaktualniając ten stary, ale nie w google docs, tylko w githubie w docs, żeby każdy go miał, mógł dodawać poprawki i było widać jego historię. Nawet, żeby można było bezpiecznie odnieść się do niego w wiki.
Stworzyłem ten temat (nie wiedząc zresztą o poprzednich), bo wygląda na to, że można bazę danych "odchudzić", jeżeli nie objętościowo, to przynajmniej konstrukcyjnie.
To, co jest potrzebne w pierwszym rzucie, to potwierdzenie, że na żadnym z nodów tabele "do usunięcia" faktycznie nie są używane ani w kodzie ani w żadnych zewnętrznych narzędziach.
W przypadku tabel "tylko odczytywanych" przed rozpoczęciem planowania przeniesienia ich zawartości do kodu trzeba sprawdzić, czy ta zawartość na wszystkich nodach jest identyczna. Jeżeli nie, to danej tabeli ruszyć nie można. Ze swojej strony mogę spróbować zrobić zestawienie wszystkich miejsc, w których dana tabela jest odczytywana.
Już teraz widzę, że zrobiłem błędy, gdyż nie uwzględniłem w wyszukiwaniu triggerów już istniejących w deweloperskiej bazie, stąd np. cache_coordinates
i cache_countries
są aktualizowane ale przy pomocy triggerów.
Please continue in english.
All tables marked by @rapotek as "can be migrated" are already subject of issues part of project https://github.com/opencaching/opencaching-pl/projects/2
Furthermore, cache_attrib
also must be migrated into the code. See https://github.com/opencaching/opencaching-pl/issues/462 and https://github.com/opencaching/opencaching-pl/issues/878 (at least).
Tables countries
and languages
contain translations. They have already been (at least in part) migrated into code.
nuts_layer
- I have been unable to generate appropriate data for it back in 2014.
Also, it must take into account more then Europe. See https://github.com/opencaching/opencaching-pl/issues/865 at least. Generate process must take into account data as polygon instead of linestring. See https://github.com/opencaching/opencaching-pl/issues/120.
npa_areas
- instructions update and integration of other continents.
statpics
- should be moved to code + config.
waypoint_type
should be moved to code, same as cache_type
and log_types
.
@andrixnet to be precise: most of current remarks, including the 'should be migrated' and 'can be migrated' are @deg-pl updates
@rapotek, we can collect info about DB where ever you want - for me Google docs is just the most useful - but if you have a better idea - let's do it!
and yeah! like I told this is complicated - there are a lot of mess in DB structure :)
logentries_types
removed by https://github.com/deg-pl/opencaching-pl/commit/e0ec9c009b8b7ac78ff81edaa9af24f19297949b
See comments by @andrixnet https://docs.google.com/spreadsheets/d/1T45XyjeHRIPu4hSxSTdxOzymZcgAwR9WraJBmuwb_T0
@andrixnet, feel free to edit this doc according to your knowledge - if some table is removed - just remove it from the doc, etc. - there is full history of changes so anyone is able to watch what was changed.
Just noticing: although most of the Geocache related implementation has been modeled, there still are usage instances of cache_type
table instead of code based definitions:
myroutes_search.php
mycaches.php
search.php
viewprofile.php
openchecker.php
mycaches_logs.php
my_logs.php
mobile/newest.php
mobile/near.php
mobile/geo.php
mobile/viewcache.php
mobile/mywatches.php
graphs/PieGraphustat.php
lib/search*
modules/openchecker/openchecker_classes.php
mobile/lib/findalgo.inc.php
util/google-earth/caches.php
src/Views/articles/s2.tpl.php
src/Utils/I18n/I18n.php
I've made a simple analysis, lexical and contextless, on db tables usage in code, based on current master contents and opencaching.pl dbstruct dump. The results are:
UPDATE - Tables dropped by sqlAlters since the issue has been created: cache_visits, watches_notified, logentries_types
As I mentioned already, the code itself was not analysed, only table names occurrences searched. Please verify the point 6 especially if listed tables are not used at all, even by external tools. If not, I think they are ready to drop.
Some tables are used in `/xml/ocxml11.php' file only. What is the purpose of this file?