def connect_db(db_url=DB_URL, do_echo=False): engine = create_engine(db_url, echo=do_echo) Base.metadata.bind = engine Base.metadata.create_all(engine) Session = sessionmaker(bind=engine) Session.configure(bind=engine) return (Session(), engine)
def init(URI='sqlite:////tmp/test.db', drop_all=False): """Initialize the database.""" module_name = __name__.split('.')[-1] log = logging.getLogger(module_name) URL = make_url(URI) log.info("Initializing the database") log.debug(" driver: {}".format(URL.drivername)) log.debug(" host: {}".format(URL.host)) log.debug(" port: {}".format(URL.port)) log.debug(" database: {}".format(URL.database)) log.debug(" username: {}".format(URL.username)) # TODO is this really necessary from . import db db.URI = URI # Make sure that the director for the file database exists. if URL.host is None and URL.database: os.makedirs(os.path.dirname(URL.database), exist_ok=True) db.engine = sql.create_engine(URI, convert_unicode=True) db.Session = scoped_session(sessionmaker(autocommit=False, autoflush=False)) db.object_session = Session.object_session Session.configure(bind=db.engine) if drop_all: log.warn("Dropping existing tables!") Base.metadata.drop_all(db.engine) Base.metadata.create_all(bind=db.engine) log.info("Database initialized!")
2008-04-28 below is copied from http://www.rmunn.com/sqlalchemy-tutorial/tutorial.html """ from sqlalchemy import create_engine engine = create_engine('sqlite:///:memory:', echo=True) #from sqlalchemy import create_session #session = create_session() from sqlalchemy.orm.session import Session #session = Session(bind=eng) from sqlalchemy.orm import sessionmaker Session = sessionmaker(autoflush=True, transactional=True) Session.configure(bind=eng) session = Session() """ 2008-05-24 direct engine binding here. but it's not necessary. session seems to be able to figure out engine on its own. although it could be bad when the engine was changed, it still binds the old engine. """ from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey #clear_mappers from sqlalchemy.orm import mapper, relation metadata = MetaData() metadata.bind = eng
def create_Session(self): Session = sessionmaker() self.sess = Session.configure(bind=self.engine) self.sess = Session() return self.sess
#!/usr/bin/python3 """ lists all State objects from the database hbtn_0e_6_usa """ import sys from sqlalchemy.orm import session from sqlalchemy.orm.session import Session from model_state import Base, State from sqlalchemy.orm import sessionmaker from sqlalchemy import (create_engine) if __name__ == "__main__": engine = create_engine('mysql+mysqldb://{}:{}@localhost:3306/{}'.format( sys.argv[1], sys.argv[2], sys.argv[3]), pool_pre_ping=True) # Base.metadata.create_all(engine) Session = sessionmaker() Session.configure(bind=engine) session = Session() obj = session.query(State).filter(State.id == 2).first() obj.name = "New Mexico" session.add(obj) session.commit() session.close()
def get_session(self) -> Session: Session = sessionmaker() Session.configure(bind=self.engine) session = Session() return session