Zapisanie rekordow w railsowej bazie danych ze skryptu pythonowego

Mam skrypt w pythonie, który zasysa mi wyselekcjonowane watki i komentarze z reddita.
Mam też aplikacje w railsach z modelami Submission, Comment.

Chciałbym z poziomu tego skryptu pythonowego zapisywac dane do tej railsowej bazy. Jak to najlepiej ogarnac?

Ja bym wygenerował SQL-owe INSERT-y dopliku tekstowego (.sql), a później wykonać plik (pamiętając o ‘COMMIT’ na końcu wszystkich INSERT’ów, co też trzeba w pliku .sql uwzględnić)

Podobnie myslalem, zeby generowac plik z jsonem i ustawic jakis rake task zeby z katalogu zasysal te jsony, dodawal do bazy i usuwal z katalogu i odpalac go co 5 minut.

Druga opcja zeby skrypt wysylal POST z jsonem, a Railsy by sie tym zajmowaly.

Tylko nie wiem, ktora opcja sensowniejsza.

Imo wszystko zależy do walidacji. Jeśli planujesz w railsowych modelach mieć walidacje i chcesz żeby były odpalane to rake task ładujący jakiś plik (najlepiej CSV bo łatwiej czytać po kawałku), inicjalizujący modele i zapisujący do bazy. Możesz mieć tylko problem z wydajnością jeśli nie zrobisz tego jakoś fajnie batchowo.

Ja bym użył ORM’a Pythonowego Peewee http://docs.peewee-orm.com/en/latest/ i ładował wszystko do bazy z poziomu pythona, a jeżeli jest potrzebna jakaś walidacja to napisał ją po prostu w pythonie.

Chyba spróbuje jednak z tą ostatnią opcją od @sztosz , do tego znalazłem fajne narzędzie do generowania modeli w peewee: python -m pwiz -e postgresql my_postgresql_db > models.py.

Tylko pamiętaj żeby na poprawiać te wygenerowane modele, bo kilka razy tego używałem i czasem się delikatnie myli ten skrypt.