init_db.py
800 Bytes
import sys
from configparser import ConfigParser
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from zope.sqlalchemy import register
import transaction
from opensipkd.views.models import Conf as BaseConf
from ..models import Base
from ..common import (
my_registry,
append_csv,
)
def main(argv=sys.argv[1:]):
conf_file = argv[0]
conf = ConfigParser()
conf.read(conf_file)
db_url = conf.get('main', 'report_db_url')
engine = create_engine(db_url, echo=True)
Base.metadata.create_all(engine)
BaseConf.metadata.create_all(engine)
factory = sessionmaker(bind=engine)
my_registry['db_session'] = db_session = factory()
register(db_session)
with transaction.manager:
append_csv(BaseConf, 'conf.csv', ['nama'])