예제 #1
0
def connect_read_only():
	from frappe.database import Database

	local.read_only_db = Database(local.conf.slave_host, local.conf.slave_db_name,
		local.conf.slave_db_password)

	# swap db connections
	local.master_db = local.db
	local.db = local.read_only_db
예제 #2
0
def connect(site=None, db_name=None):
    """Connect to site database instance.

	:param site: If site is given, calls `frappe.init`.
	:param db_name: Optional. Will use from `site_config.json`."""
    from frappe.database import Database
    if site:
        init(site)
    local.db = Database(user=db_name or local.conf.db_name)
    set_user("Administrator")
예제 #3
0
파일: __init__.py 프로젝트: tchmgit/frappe
def connect_replica():
	from frappe.database import Database
	user = local.conf.db_name
	password = local.conf.db_password

	if local.conf.different_credentials_for_replica:
		user = local.conf.replica_db_name
		password = local.conf.replica_db_password

	local.replica_db = Database(host=local.conf.replica_host, user=user, password=password)

	# swap db connections
	local.primary_db = local.db
	local.db = local.replica_db
예제 #4
0
def get_conn():
    db_instance = Database()
    conversions.update({
        FIELD_TYPE.NEWDECIMAL: float,
        FIELD_TYPE.DATETIME: frappe.utils.get_datetime,
        UnicodeWithAttrs: conversions[text_type]
    })
    return pymysql.connect(
        db_instance.host,
        db_instance.user,
        db_instance.password,
        charset='utf8mb4',
        use_unicode=True,
        conv=conversions,
        local_infile=db_instance.local_infile,
        db=db_instance.user,
    )
예제 #5
0
def migrate():
	frappe.flags.mute_emails = True
	source = Database(user='******', password='******')

	# users = source.sql('select * from tabUser', as_dict=1)
	# for u in users:
	# 	frappe.get_doc(dict(
	# 		doctype='User',
	# 		name=u.name,
	# 		first_name=u.first_name,
	# 		last_name=u.last_name,
	# 		email=u.email
	# 	)).insert(ignore_if_duplicate=True)
	# 	print u.name

	# frappe.db.sql('delete from `tabService Provider`')
	# partners = source.sql('select * from `tabFrappe Partner`', as_dict=True)
	# for p in partners:
	# 	d = frappe.get_doc(dict(
	# 		doctype='Service Provider',
	# 		title=p.partner_name,
	# 		country=p.country,
	# 		image=p.logo,
	# 		introduction=p.introduction,
	# 		details=markdown(p.description),
	# 		address=p.partner_address,
	# 		discuss_ids=p.community_members,
	# 		website=p.partner_website,
	# 		github_id=p.github_id,
	# 		owner=p.owner,
	# 		creation=p.creation,
	# 		email= p.email,
	# 		phone=p.phone,
	# 		route=p.route,
	# 		show_in_website=p.show_in_website
	# 	)).insert(ignore_if_duplicate=True, ignore_mandatory=True)
	# 	print d.name

	# jobs = source.sql('select * from `tabFrappe Job`', as_dict=True)
	# frappe.db.sql('delete from `tabPortal Job`')
	# for j in jobs:
	# 	if not frappe.db.exists('Country', j.country):
	# 		frappe.get_doc(dict(doctype='Country', country_name=j.country)).insert()
	# 	d = frappe.get_doc(dict(
	# 		doctype='Portal Job',
	# 		title=j.job_title,
	# 		company_name=j.company_name,
	# 		country=j.country,
	# 		status='Open' if j.status=='Assigned' else j.status,
	# 		job_type={
	# 			'ERP Implementation': 'Implementation',
	# 			'Core Development': 'Feature Development',
	# 			'Website Development': 'Website Development',
	# 			'Other': 'App Development'
	# 		}.get(j.job_type, None) or j.job_type,
	# 		description= markdown(j.job_detail),
	# 		owner=j.owner,
	# 		creation=j.creation,
	# 		route=j.route,
	# 		show_in_website=j.show_in_website
	# 	)).insert(ignore_if_duplicate=True, ignore_mandatory=True)
	# 	print d.name

	apps = source.sql('select * from `tabFrappe App`', as_dict=True)
	frappe.db.sql('delete from `tabFrappe App`')
	for a in apps:
		d = frappe.get_doc(dict(
			doctype='Frappe App',
			app_name = a.app_name,
			badge = a.badge,
			category = a.category,
			route = a.route,
			url = a.url,
			repository_url = a.repository_url,
			published = 1,
			description = markdown(a.description),
			owner=a.owner,
			creation=a.creation,
		)).insert(ignore_if_duplicate=True, ignore_mandatory=True)
		print d.name
예제 #6
0
파일: help.py 프로젝트: stevenpegas/frappe
 def connect(self):
     if self.global_help_setup:
         self.db = Database(user=self.help_db_name,
                            password=self.help_db_name)
     else:
         self.db = frappe.db
예제 #7
0
def migrate():
	frappe.flags.mute_emails = True
	source = Database(user='******', password='******')

	users = source.sql('select * from tabUser', as_dict=1)
	for u in users:
		if validate_email_add(u.email.strip()):
			frappe.get_doc(dict(
				doctype='User',
				name=u.name,
				first_name=u.first_name,
				last_name=u.last_name,
				email=u.email
			)).insert(ignore_if_duplicate=True)
			print u.name

	print "sync auth"
	auth = source.sql('select * from __Auth where name != "Administrator"', as_dict=1)
	for user in auth:
		frappe.db.sql("""insert into __Auth
			(doctype, name, fieldname, password, salt, encrypted)
			values (%s, %s, %s, %s, %s, %s)""",
				(user.doctype, user.name, user.fieldname, user.password, user.salt, user.encrypted), debug=1)
		print user.name

	frappe.db.sql('delete from `tabService Provider`')
	partners = source.sql('select * from `tabFrappe Partner`', as_dict=True)
	for p in partners:
		d = frappe.get_doc(dict(
			doctype='Service Provider',
			title=p.partner_name,
			country=p.country,
			image=p.logo,
			introduction=p.introduction,
			details=markdown(p.description),
			address=p.partner_address,
			discuss_ids=p.community_members,
			website=p.partner_website,
			github_id=p.github_id,
			owner=p.owner,
			creation=p.creation,
			email= p.email,
			phone=p.phone,
			route=p.route,
			show_in_website=p.show_in_website
		)).insert(ignore_if_duplicate=True, ignore_mandatory=True)
		print d.name

	jobs = source.sql('select * from `tabFrappe Job`', as_dict=True)
	frappe.db.sql('delete from `tabPortal Job`')
	for j in jobs:
		if not frappe.db.exists('Country', j.country):
			frappe.get_doc(dict(doctype='Country', country_name=j.country)).insert()
		d = frappe.get_doc(dict(
			doctype='Portal Job',
			title=j.job_title,
			company_name=j.company_name,
			country=j.country,
			status='Open' if j.status=='Assigned' else j.status,
			job_type={
				'ERP Implementation': 'Implementation',
				'Core Development': 'Feature Development',
				'Website Development': 'Website Development',
				'Other': 'App Development'
			}.get(j.job_type, None) or j.job_type,
			description= markdown(j.job_detail),
			owner=j.owner,
			creation=j.creation,
			route=j.route,
			show_in_website=j.show_in_website
		)).insert(ignore_if_duplicate=True, ignore_mandatory=True)
		print d.name

	apps = source.sql('select * from `tabFrappe App`', as_dict=True)
	frappe.db.sql('delete from `tabFrappe App`')
	for a in apps:
		d = frappe.get_doc(dict(
			doctype='Frappe App',
			app_name = a.app_name,
			badge = a.badge,
			category = a.category,
			route = a.route,
			url = a.url,
			repository_url = a.repository_url,
			published = 1,
			description = markdown(a.description),
			owner=a.owner,
			creation=a.creation,
		)).insert(ignore_if_duplicate=True, ignore_mandatory=True)
		print d.name
예제 #8
0
 def connect(self):
     self.db = Database(user=help_db_name, password=help_db_name)