# Form the URL for connecting to the database based on the "demo db" directive in the Configuration url = alchemy_url('demo db') # Build the "engine" for connecting to the SQL server, using the URL for the database. engine = create_engine(url) # Create the tables Base.metadata.create_all(engine) # Get SQLAlchemy ready Base.metadata.bind = engine DBSession = sessionmaker(bind=engine)() # Perform any necessary database schema updates using alembic, if there is an alembic # directory and alembic.ini file in the package. upgrade_db(url, __file__, engine) # Define Bank as both a DAObject and SQLObject class Bank(Person, SQLObject): # This tells the SQLObject code what the SQLAlchemy model is _model = BankModel # This tells the SQLObject code how to access the database _session = DBSession # This indicates that an object is not ready to be saved to SQL unless the "name" column is defined _required = ['name'] # This indicates that the human-readable unique identifier for the table is the column "routing" _uid = 'routing' def init(self, *pargs, **kwargs): super(Bank, self).init(*pargs, **kwargs) # This runs necessary SQLObject initialization code for the instance self.sql_init()
conn_args = connect_args('demo db') if url.startswith('postgres'): engine = create_engine(url, connect_args=conn_args, pool_pre_ping=False) else: engine = create_engine(url, pool_pre_ping=False) # Create the tables Base.metadata.create_all(engine) # Get SQLAlchemy ready Base.metadata.bind = engine DBSession = sessionmaker(bind=engine)() # Perform any necessary database schema updates using alembic, if there is an alembic # directory and alembic.ini file in the package. upgrade_db(url, __file__, engine, conn_args=conn_args) # Define Bank as both a DAObject and SQLObject class Bank(Person, SQLObject): # This tells the SQLObject code what the SQLAlchemy model is _model = BankModel # This tells the SQLObject code how to access the database _session = DBSession # This indicates that an object is not ready to be saved to SQL unless the "name" column is defined _required = ['name'] # This indicates that the human-readable unique identifier for the table is the column "routing" _uid = 'routing' def init(self, *pargs, **kwargs): super().init(*pargs, **kwargs) # This runs necessary SQLObject initialization code for the instance self.sql_init()