loaddump_Articles
This commit is contained in:
57
load_articles.py
Normal file
57
load_articles.py
Normal file
@@ -0,0 +1,57 @@
|
||||
import sys
|
||||
import json
|
||||
from src.articles.model import Article, FullArticleSchema
|
||||
from src.database import db_session
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
raise Error("Kein Zieldateiname angegeben")
|
||||
|
||||
|
||||
def load_article(a):
|
||||
return FullArticleSchema().load(a[0]).data
|
||||
|
||||
def load_section(s):
|
||||
return FullSectionSchema().load(s[0]).data
|
||||
|
||||
|
||||
|
||||
file = open(sys.argv[1], "r")
|
||||
|
||||
data=json.load(file)
|
||||
articles=None
|
||||
sections=None
|
||||
organizations=None
|
||||
|
||||
if isinstace(data,dict):
|
||||
if data.has_key("articles"):
|
||||
articles=data["articles"]
|
||||
if data.has_key("sections"):
|
||||
sections=data["sections"]
|
||||
|
||||
else:
|
||||
articles=data
|
||||
|
||||
|
||||
articles= map (load_article, articles)
|
||||
sections=map(load_section,sections)
|
||||
|
||||
for a in articles:
|
||||
try:
|
||||
db_session.add(a)
|
||||
db_session.commit()
|
||||
except IntegrityError:
|
||||
db_session.rollback()
|
||||
finally:
|
||||
db_session.rollback()
|
||||
|
||||
for s in sections:
|
||||
try:
|
||||
db_session.add(s)
|
||||
db_session.commit()
|
||||
except IntegrityError:
|
||||
db_session.rollback()
|
||||
finally:
|
||||
db_session.rollback()
|
||||
|
||||
file.close()
|
||||
Reference in New Issue
Block a user