code: def create_app(app_id, app_name, source_id, region, app_data):
      
      try:
          create_at = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
          conn = get_conn()
          c = conn.cursor()
  
          #check old app
          c.execute("SELECT count(*) FROM app WHERE name='{0}' ".format(app_name))
          old_app = c.fetchone()
          if old_app[0] > 0:
              print 'app name (%s) already existed, clear old app and container info ...' % app_name
              c.execute("DELETE FROM container WHERE app_id='{0}'".format(app_id))
              c.execute("DELETE FROM app WHERE name='{0}'".format(app_name))
              conn.commit()
  
          #insert new app
          c.execute("INSERT INTO app (id,name,source_id,region,state,create_at,change_at,app_data) VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')"
              .format(app_id, app_name, source_id, region, constant.STATE_APP_RUNNING, create_at, create_at, app_data))
          conn.commit()
          conn.close()
          print 'create app %s succeed!' % app_id
      except Exception, e:
          raise RuntimeError('create app %s failed! %s' % (app_id,e))
docs: insert app record when stack run as a app