N.....e
N.....e
#python #django

Robie sobie oto ten tutorial: https://www.youtube.com/watch?v=eio1wDUHFJE

Leże w momencie gdy muszę w shellu wpisać Article.objects.all() . Błąd który dostaje to:

django.db.utils.OperationalError: no such table: articles_article

Wykonałem manage.py makemigrations oraz migrate, bez skutku. Zawartość models.py z folderu articles na zdjęciu.

Ma ktoś pomysł co to może być? Zaczynam z django i ciężko mi jeszcze cokolwiek naprawiać samemu, tym bardziej że rozwiązania z stackoverflow nie działają :D Jeżeli trzeba wrzucić coś jeszcze proszę - dajcie znać.
  • Najlepsze
  • Wszystkie komentarze
Islam
Islam
1
@NewEpisode: a w shellu zrobiles import modelu? :p
ProfesorBigos
@NewEpisode: dodałeś articles do INSTALLED_APPS w settings.py?
N.....e
N.....e
@ProfesorBigos: tak, jest dodany
N.....e
N.....e
@ProfesorBigos: ogólnie z tym tutorialem już natrafiłem na jeden problem, jest robiony na starszą wersję django i są spore różnice w ulrs.py względem najnowszej wersji, temu też zastanawiam się czy nie będzie problemu w czymś co trzeba zrobić, a tego nie zrobiłem :p
ProfesorBigos
@NewEpisode: A w folderze migrations masz plik 0001_initial.py?
michael93pl
@NewEpisode: a makemigrations wykryło różnice w modelach? pokaż w ogóle folder z migracjami
N.....e
N.....e
@Islam: Tak, zrobiłem

@michael93pl: @ProfesorBigos: Udało się poprzez python manage.py --fake articles zero, podpowiedź gościa z internetu.
michael93pl
@NewEpisode: fake to nie rozwiązanie, jeżeli pracujesz sam, nie było innych migracji, które wpadły, kiedy Ty już miałeś jakąś swoją, nie powinieneś potrzebować fake'a.

Najprostrsze rozwiązanie, bo zakładam, że nie robisz tego na produckji i nie masz jeszcze żadnych danych:

puść dropa bazy, stwórz nową, świeżą, odpal makemigrations & migrate, powinno normalnie zadziałać
N.....e
N.....e
@michael93pl: Mogę prosić o wyjaśnienie dla osoby która drugi dzień siedzi nad django a wcześniej pisała w czystym pythonie? ( ͡° ͜ʖ ͡°)
michael93pl
@NewEpisode: tu masz trochę opisaną kwestię fake'a i dlaczego to nie powinno byc rozwiązanie w Twoim przypadku
https://stackoverflow.com/questions/46772762/django-migrate-fake-and-fake-initial-explained

odnośnie dropa, to wywołaj komendy z tegj
michael93pl
@NewEpisode: i jeszcze ściągawka jeżeli makemigrations nie wykrywa zmian
https://stackoverflow.com/questions/24912173/django-1-7-makemigrations-not-detecting-changes/46362750#46362750

fake app_name zero w skrócie czysci stare migracje z listy migracji django, jednak nie usuwa schema bazy danych w samym sqlu, nie wiem co tam dokładnie się zdarzyło u Ciebie ale generalnie nie powinieneś potrzebować bawić się w takie rzeczy, coś gdzieś poszlo nie tak

z ciekawości - po zrobieniu migrate fake articles zero mogłeś zapisać obiekt do bazy bez
N.....e
N.....e
@michael93pl: Dzięki za konkretną odpowiedź, na pewno skorzystam. Z tego co się orientuje mogłem zapisać bez błędu, ale w desperacji pousuwałem też foldery z migracjami - jak szukałem rozwiązania problemu
michael93pl
@NewEpisode no problemo, powiem Ci szczerze, że pracuje z Django 2.5 roku a raz w życiu wykorzystałem fake migracji, nawet już nie pamiętam dokładnie kiedy i dlaczego, więc nie jestem specem, gdybym coś z----ł na bazie na 100 % i tak bym musiał googlowac

Jeszcze mały hint ale taki bardziej na logikę - nigdy ale to nigdy nie testuj jakichś rozwiązań z baza na produkcji, zawsze rób to lokalnie i najlepiej
N.....e
N.....e
@michael93pl: Wielkie dzięki za tą podpowiedź, mam nadzieje że się przyda - co do PW to myślę że jeszcze skorzystam, dzięki jeszcze raz!
F0rT3hW1n
@michael93pl:

nigdy ale to nigdy nie testuj jakichś rozwiązań z baza na produkcji


Aż mi się przypomniało to starocie XDDD