Пример #1
0
def createDB():
  #sqliteDBPath = os.path.abspath(os.path.join(os.getcwd(), 'data', 't3.db'))
  #app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + sqliteDBPath
  app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
  app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://'+app.config['DATABASE']['user']+':'+app.config['DATABASE']['passwd']+'@'+app.config['DATABASE']['host']+':'+str(app.config['DATABASE']['port'] or '')+'/'+app.config['DATABASE']['schema']
  db = SQLAlchemy(app, session_options={
    #'autoflush': False,
    #'autocommit': False,
    'expire_on_commit': False
  })
  
  dbConfig = {
    'mysql': {
      'passive_updates': True,
      'cascade_all': 'all, delete, delete-orphan'
    },
    'sqlite': {
      'passive_updates': False,
      'cascade_all': 'all, delete, delete-orphan'
    },
  }
  dbConfigSet = app.config['SQLALCHEMY_DATABASE_URI'].split(':')[0]
  
  db._config = type('CustomConfiguration', (object,), dbConfig[dbConfigSet])
  
  return db