from sqlalchemy import Column, DateTime, String, Integer, Boolean from sqlalchemy import ForeignKey, func from sqlalchemy.orm import relationship, backref from sqlalchemy.ext.declarative import declarative_base from ee.core.logging import Log import sys Base = declarative_base() class SiteDB(Base): __tablename__ = 'Site' id = Column(Integer, primary_key=True) sitename = Column(String, unique=True) site_type = Column(String) cache_type = Column(String) site_path = Column(String) # Use default=func.now() to set the default created time # of a site to be the current time when a # Site record was created created_on = Column(DateTime, default=func.now()) site_enabled = Column(Boolean, unique=False, default=True, nullable=False) is_ssl = Column(Boolean, unique=False, default=False) storage_fs = Column(String) storage_db = Column(String) # def __init__(self): # from sqlalchemy import create_engine # self.engine = create_engine('sqlite:///orm_in_detail.sqlite') # if __name__ == "__main__": # # from sqlalchemy import create_engine # engine = create_engine('sqlite:///orm_in_detail.sqlite') # from sqlalchemy.orm import sessionmaker # session = sessionmaker() # session.configure(bind=engine) # Base.metadata.create_all(engine) # s = session() # newRec = SiteDB(sitename='exa.in', site_type='wp', cache_type='basic', # site_path='/var/www', site_enabled=True, is_ssl=False, storage_fs='ext4', # storage_db='mysql') # s.add(newRec) # s.commit() # s.flush() def addNewSite(self, site, stype, cache, path, enabled=True, ssl=False, fs='ext4', db='mysql'): db_path = self.app.config.get('site', 'db_path') try: from sqlalchemy import create_engine engine = create_engine(db_path) from sqlalchemy.orm import sessionmaker session = sessionmaker() session.configure(bind=engine) Base.metadata.create_all(engine) s = session() newRec = SiteDB(sitename=site, site_type=stype, cache_type=cache, site_path=path, site_enabled=enabled, is_ssl=ssl, storage_fs=fs, storage_db=db) s.add(newRec) s.commit() s.flush() except Exception as e: Log.error(self, "Unable to add site to database : {0}" .format(e)) sys.exit(1)