本文整理汇总了Python中pyasm.search.DbContainer.get方法的典型用法代码示例。如果您正苦于以下问题:Python DbContainer.get方法的具体用法?Python DbContainer.get怎么用?Python DbContainer.get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyasm.search.DbContainer
的用法示例。
在下文中一共展示了DbContainer.get方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def __init__(my, port=''):
# It is possible on startup that the database is not running.
from pyasm.search import DbContainer, DatabaseException, Sql
try:
sql = DbContainer.get("sthpw")
if sql.get_database_type() != "MongoDb":
# before batch, clean up the ticket with a NULL code
if os.getenv('TACTIC_MODE') != 'production':
sql.do_update('DELETE from "ticket" where "code" is NULL;')
else:
start_port = Config.get_value("services", "start_port")
if start_port:
start_port = int(start_port)
else:
start_port = 8081
if port and int(port) == start_port:
sql.do_update('DELETE from "ticket" where "code" is NULL;')
except DatabaseException, e:
# TODO: need to work on this
print "ERROR: could not connect to [sthpw] database"
#os.environ["TACTIC_CONFIG_PATH"] = Config.get_default_config_path()
#Sql.set_default_vendor("Sqlite")
Config.set_tmp_config()
Config.reload_config()
# try connecting again
try:
sql = DbContainer.get("sthpw")
except:
print "Could not connect to the database."
raise
示例2: get_columns
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def get_columns(my, required_only=False):
if my.search_type == 'sthpw/virtual':
return []
search_type_obj = SearchType.get(my.search_type)
table = search_type_obj.get_table()
from pyasm.biz import Project
db_resource = Project.get_db_resource_by_search_type(my.search_type)
database_name = db_resource.get_database()
db = DbContainer.get(db_resource)
# table may not exist
try:
all_columns = db.get_columns(table)
columns = []
if required_only:
nullables = db.get_column_nullables(table)
for column in all_columns:
null_ok = nullables.get(column)
if not null_ok:
columns.append(column)
# if there are no required columns
if not columns:
columns = all_columns
else:
columns = all_columns
except SqlException:
Environment.add_warning('missing table', 'Table [%s] does not exist in database [%s]' %(table, database_name))
return []
return columns
示例3: import_bootstrap
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def import_bootstrap():
print "Importing bootstrap ..."
vendor = "SQLServer"
impl = DatabaseImpl.get(vendor)
impl.create_database("sthpw")
upgrade_dir = Environment.get_upgrade_dir()
for category in ['bootstrap', 'sthpw', 'config']:
f = open("%s/%s/%s_schema.sql" % (upgrade_dir, vendor.lower(), category) )
data = f.read()
f.close()
data = data.split(";")
cmds = []
for cmd in data:
cmd = cmd.strip()
if cmd == '':
continue
cmds.append(cmd)
from pyasm.search import DbContainer
sql = DbContainer.get("sthpw")
for cmd in cmds:
sql.do_update(cmd)
示例4: delete
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def delete(my,log=False):
column = my.get_value("name")
search_type = my.get_value("search_type")
search_type_obj = SearchType.get(search_type)
table = search_type_obj.get_table()
database = search_type_obj.get_database()
# remove it from the table
if log:
AlterTableUndo.log_drop(database, table, column)
sql = DbContainer.get(database)
try:
from pyasm.search.sql import Sql
if Sql.get_database_type() == 'SQLServer':
statement = 'ALTER TABLE [%s] DROP "%s" %s' % \
(table, column)
else:
statement = 'ALTER TABLE "%s" DROP COLUMN "%s"' % (table, column)
sql.do_update(statement)
except SqlException, e:
print("WARNING: %s" % e )
示例5: has_table
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def has_table(my, search_type):
if isinstance(search_type, basestring):
search_type = SearchType.get(search_type)
# in search type database == project
project_code = search_type.get_project_code()
# get the db_resource for this project
db_resource = my.get_project_db_resource()
# get the table
table = search_type.get_table()
if not table:
return False
try:
# looking up a database's tables other than the current one
sql = DbContainer.get(db_resource)
tables = sql.get_tables()
has_table = table in tables
except Exception, e:
print "WARNING: in Project.has_table(): table [%s] not found" % table
print "Message: ", e
has_table = False
示例6: __init__
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def __init__(my, num_processes=None):
my.check_interval = 120
my.num_processes = num_processes
my.dev_mode = False
sql = DbContainer.get("sthpw")
# before batch, clean up the ticket with a NULL code
sql.do_update('DELETE from "ticket" where "code" is NULL;')
示例7: fix_notification_login_id
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def fix_notification_login_id():
db = DbContainer.get("sthpw")
sql = '''
BEGIN TRANSACTION;
CREATE TABLE t_backup (
id integer PRIMARY KEY AUTOINCREMENT,
notification_log_id integer,
"login" character varying(256),
"type" character varying(256),
project_code character varying(256),
"timestamp" timestamp without time zone DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO t_backup SELECT id, notification_log_id, "login", "type", project_code, "timestamp" FROM %(table)s;
DROP TABLE %(table)s;
ALTER TABLE t_backup RENAME TO %(table)s;
COMMIT;
''' % {"table": "notification_login"}
conn = db.conn
conn.executescript(sql)
示例8: execute
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def execute(my):
database = "sthpw"
sql = DbContainer.get(database)
value_array = sql.do_query("select code, cc from (select code, count(code) as cc from file group by code order by cc desc) as X where cc > 1;")
#value_array = sql.do_query("select code, cc from (select code, count(code) as cc from file group by code order by cc desc) as X;")
print "found [%s] pairs" % len(value_array)
for count, value_list in enumerate(value_array):
if count >= BATCH:
break
# get the file object
file_code = value_list[0]
search = Search("sthpw/file")
search.add_filter("code", file_code)
files = search.get_sobjects()
#if len(files) == 1:
# continue
for file in files:
project_code = file.get_value("project_code")
if not project_code:
print "WARNING: file [%s] has no project_code" % file_code
continue
project = Project.get_by_code(project_code)
initials = project.get_initials()
id = file.get_id()
new_file_code = "%s%s" % (id, initials)
if file_code == new_file_code:
continue
print "-"*20
print "switching: ", file_code, "to", new_file_code
snapshot_code = file.get_value("snapshot_code")
snapshot = Snapshot.get_by_code(snapshot_code)
assert snapshot
snapshot_xml = snapshot.get_xml_value("snapshot")
print snapshot_xml.to_string()
node = snapshot_xml.get_node("snapshot/file[@file_code='%s']" % file_code)
Xml.set_attribute(node, "file_code", new_file_code)
print snapshot_xml.to_string()
assert node
# set the file_code
file.set_value("code", new_file_code)
file.commit()
# set the snapshot
snapshot.set_value("snapshot", snapshot_xml.to_string() )
snapshot.commit()
示例9: get_tables_wdg
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def get_tables_wdg(my):
div = DivWdg()
div.set_name("Tables")
div.add("In order to fully register a database, you must bind it to a TACTIC project")
div.add("<br/>")
project_code = "mongodb"
database = "test_database"
db_resource = DbResource(
server='localhost',
vendor='MongoDb',
database=database
)
try:
connect = DbContainer.get(db_resource)
except Exception, e:
div.add("Could not connect")
div.add_style("padding: 30px")
div.add("<br/>"*2)
div.add(str(e))
return div
示例10: execute
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def execute(self):
if not self.login_name:
self.login_name = self.kwargs.get('login');
# invalidate the ticket
security = Environment.get_security()
ticket = security.get_ticket()
if ticket == None:
return
login_name = ticket.get_value("login")
print "Signing out: ", login_name
# expire the ticket
from pyasm.security import Site
site = Site.get()
if site:
Site.set_site("default")
try:
from pyasm.search import Sql, DbContainer
sql = DbContainer.get("sthpw")
ticket.set_value("expiry", sql.get_timestamp_now(), quoted=False)
ticket.commit()
except:
if site:
Site.pop_site()
示例11: fix_debug_log_id
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def fix_debug_log_id():
db = DbContainer.get("sthpw")
sql = '''
BEGIN TRANSACTION;
CREATE TABLE t_backup (
id integer PRIMARY KEY AUTOINCREMENT,
"category" character varying(256),
"level" character varying(256),
"message" text,
"timestamp" timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
"login" character varying(256),
"s_status" character varying(30)
);
INSERT INTO t_backup SELECT "id", "category", "level", "message", "timestamp", "login", "s_status" FROM %(table)s;
DROP TABLE %(table)s;
ALTER TABLE t_backup RENAME TO %(table)s;
COMMIT;
''' % {"table": "debug_log"}
conn = db.conn
conn.executescript(sql)
示例12: _test_time
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def _test_time(my):
""" test timezone related behavior"""
sobject = SearchType.create("sthpw/task")
sobject.set_value("project_code", "unittest")
sobject.set_value("bid_start_date", "2014-11-11 05:00:00")
time = sobject.get_value("bid_start_date")
my.assertEquals(time, "2014-11-11 05:00:00")
sobject.commit()
time = sobject.get_value("bid_start_date")
my.assertEquals(time, "2014-11-11 05:00:00")
from pyasm.search import DbContainer
sql = DbContainer.get("sthpw")
db_value = sql.do_query("SELECT bid_start_date from task where id = %s" % sobject.get_id())
# 2014-11-11 00:00:00 is actually written to the database
my.assertEquals(db_value[0][0].strftime("%Y-%m-%d %H:%M:%S %Z"), "2014-11-11 00:00:00 ")
# an sType specified without a project but with an id could be a common human error
# but it should handle that fine
obj1 = Search.eval('@SOBJECT(unittest/person?project=unittest["id", "%s"])' % sobject.get_id(), single=True)
obj2 = Search.eval('@SOBJECT(unittest/person?id=2["id", "%s"])' % sobject.get_id(), single=True)
obj3 = Search.eval('@SOBJECT(sthpw/task?id=2["id", "%s"])' % sobject.get_id(), single=True)
task = Search.eval('@SOBJECT(sthpw/task["id", "%s"])' % sobject.get_id(), single=True)
# EST and GMT diff is 5 hours
my.assertEquals(task.get_value("bid_start_date"), "2014-11-11 05:00:00")
示例13: get_columns
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def get_columns(cls, db_resource, table):
from pyasm.search import DbResource, DbContainer
sql = DbContainer.get(db_resource)
conn = sql.get_connection()
collection = conn.get_collection(table)
# FIXME:
# This just gets the first one to discover the columns. This is
# not accurate because each item in a collection can contain
# different "attributes". The key here is to define a location
# for where this "schema" description is stored
result = collection.find_one()
if not result:
return ['_id']
else:
columns = result.keys()
# assume existence of both code and _id
#if "code" in columns:
# columns.remove("code")
#columns.insert(0, "code")
if "_id" in columns:
columns.remove("_id")
columns.insert(0, "_id")
return columns
示例14: get_data_type
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def get_data_type(cls, search_type, attr_type):
search_type_obj = SearchType.get(search_type)
db_resource = Project.get_db_resource_by_search_type(search_type)
sql = DbContainer.get(db_resource)
impl = sql.get_database_impl()
# SearchType Manager and Add Widget Column use mixed upper and
# lowercases for the following attr_type, so fix it at some point
if not attr_type:
attr_type = "varchar"
if attr_type == "integer":
data_type = impl.get_int()
elif attr_type == "float":
data_type = "float"
elif attr_type == "boolean":
data_type = impl.get_boolean()
elif attr_type == "link":
data_type = "text"
elif attr_type.startswith('varchar'):
data_type = attr_type
elif attr_type == 'time':
data_type = impl.get_timestamp()
elif attr_type in ["Date", "date"]:
data_type = impl.get_timestamp()
elif attr_type == "Category":
data_type = "varchar(256)"
elif attr_type in ["text", "Text"]:
data_type = impl.get_text()
elif attr_type in ["Date Range", 'timestamp']:
data_type = impl.get_timestamp()
elif attr_type == "Checkbox":
data_type = "varchar(256)"
elif attr_type in ["Foreign Key", "foreign_key"]:
data_type = "varchar(256)"
elif attr_type in ["List", "list"]:
data_type = "varchar(512)"
elif attr_type == "Name/Code":
data_type = "varchar(256)"
elif attr_type == "Number":
data_type = impl.get_int()
elif attr_type in ["currency", "scientific", "percent"]:
data_type = "float"
elif attr_type == "timecode":
data_type = impl.get_int()
else:
#data_type = "varchar(256)"
data_type = impl.get_varchar()
return data_type
示例15: get_table_info
# 需要导入模块: from pyasm.search import DbContainer [as 别名]
# 或者: from pyasm.search.DbContainer import get [as 别名]
def get_table_info(self, database):
from pyasm.search import DbResource, DbContainer
sql = DbContainer.get(database)
conn = sql.get_connection()
collections = conn.collection_names()
table_info = {}
for collection in collections:
table_info[collection] = { }
return table_info