Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nesutampa šaltinio nuoroda su senos portalo versijos nuoroda #808

Open
aurjas opened this issue Nov 30, 2023 · 3 comments · Fixed by #812 or #865
Open

Nesutampa šaltinio nuoroda su senos portalo versijos nuoroda #808

aurjas opened this issue Nov 30, 2023 · 3 comments · Fixed by #812 or #865
Labels
bug Something isn't working

Comments

@aurjas
Copy link

aurjas commented Nov 30, 2023

Rinkinys https://data.gov.lt/datasets/1894/

Šaltinyje pateikto failo nuoroda yra nauja ir nesutampa su senos portalo versijos nuoroda. Paspaudus šią nuorodą https://data.gov.lt/dataset/1894/download/14071/TUB_duomenys.csv, išmeta klaidą "Not Found". Tačiau pridėjus "old." prie nuorodos https://old.data.gov.lt/dataset/1894/download/14071/TUB_duomenys.csv, jau failą randa.

Image

Prie to paties, reikėtų įsitikinti ar veikia ir peradresavimas nuorodoms į seną portalo versiją (redirect).

Dar pridėsiu vieną klaidą, užvedus pelės kursorių ant "Atsisiųsti" (žr. paveiksliuką), rodo, kad tai yra csv failas, bet paspaudus "Atsisiųsti" išsaugoti leidžia tik kaip .txt failą. Tokiu atveju duomenų naudotojui reiktų pasikeisti failo formatą.

Image

Susiję

@aurjas aurjas assigned aurjas and unassigned aurjas Nov 30, 2023
@adp-atea adp-atea linked a pull request Nov 30, 2023 that will close this issue
@sirex
Copy link
Contributor

sirex commented Dec 12, 2023

@aurjas ar testavai šį pataisymą? Nes visos išorinių šaltinių nuorodos sugadintos ir neveikia.

@adp-atea prašau, prieš atiduodant pataisymus, pasitikrinti, ar jie veikia. Dabar turime tokį pataisymą:

download_url = self.download_url
url_parts = download_url.split('//')
url_parts.insert(1, '//old.')
return ''.join(url_parts)

Kuris suformuoja tokią nuorodą, kuri veda į neegzistuojantį adresą, ir net į neegzistuojantį domeną.

Nereikia daryti nukreipimo į old.data.gov.lt, nes tai yra laikinai veikiantis serveris, kuris bus išjungtas. Reikia sutvarkyti nuorodas į data.gov.lt failus, kurie yra perkelt, tik reikia į juos tinkamai suformuoti nuorodas. Dabar nuorodos formuojamos į filer.

Buvo padaryta failų migracija į Filer:

def migrate_distribution_files(pbar, root_path, folder):
for distribution in DatasetDistribution.objects.filter(
filename__isnull=False,
identifier__isnull=False
):
file_path = os.path.join(root_path, distribution.identifier)
if os.path.exists(file_path):
dj_file = DjangoFile(
open(file_path, mode='rb'),
name=distribution.filename
)
file, created = File.objects.get_or_create(
file=dj_file,
original_filename=distribution.filename,
folder=folder
)
distribution.file = file
distribution.save(update_fields=['file'])
else:
print(f'File with path "{file_path}" was not found')
pbar.update(1)

Bet buvo pamiršta pataisyti distribucijų nuorodas ir padaryti peradresavimą, kad senos nuorodos būtų nukreiptos į naują vietą.

@sirex sirex reopened this Dec 12, 2023
@sirex sirex added the bug Something isn't working label Dec 12, 2023
@adp-atea adp-atea linked a pull request Dec 12, 2023 that will close this issue
@adp-atea
Copy link
Contributor

Atstačiau, kaip buvo
#865

O dėl pačio task`o tai tuos nurodos imamamos iš čia, download_url lauko.

Image
Tai čia man atrodo, kad konfigūracijos reikalas, nelabai aišku kokios nuorodos turėtų būti.

@sirex sirex reopened this Dec 15, 2023
@adp-atea
Copy link
Contributor

Turint dabartinius sąryšius modeliuose nelabai, kaip yra parašyti tokį scriptą / migraciją. Kaip suprantu fileri`o nuorodos yra čia filer_file.file

Image

ir beveik nėra kaip pasiekti iš distribution objekto fileri`o nuoroda. Vienientelis ką sugalvojau, tai paimti distribution.download_url, jį išsplitinti ir gavus failo pavadinima, pagal tai paimti filerio nuoroda, bet tai padengtų ne visus įrašus.

Kiek žiūrėjau yra apie 20 tokių įrašų

http://localhost:9000/?pgsql=postgres&username=adp&db=adp-dev&ns=public&select=dataset_distribution&columns%5B0%5D%5Bfun%5D=&columns%5B0%5D%5Bcol%5D=&where%5B0%5D%5Bcol%5D=download_url&where%5B0%5D%5Bop%5D=LIKE+%25%25&where%5B0%5D%5Bval%5D=https%3A%2F%2Fdata.gov.lt%2Fdataset%2F&where%5B01%5D%5Bcol%5D=&where%5B01%5D%5Bop%5D=%3D&where%5B01%5D%5Bval%5D=&order%5B0%5D=&limit=50&text_length=100

Ir ta nuorodą galima pakeisti per patį web`ą, tai gal tai galėtų padaryti sistemos administratoriai?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants