소스 검색

fix: Add postgreSQL support for rename_doc queries

version-14
Gavin D'souza 4 년 전
부모
커밋
58ed57e8f5
2개의 변경된 파일16개의 추가작업 그리고 13개의 파일을 삭제
  1. +4
    -1
      frappe/core/doctype/doctype/doctype.py
  2. +12
    -12
      frappe/model/rename_doc.py

+ 4
- 1
frappe/core/doctype/doctype/doctype.py 파일 보기

@@ -392,7 +392,10 @@ class DocType(Document):
frappe.db.sql("""update tabSingles set value=%s
where doctype=%s and field='name' and value = %s""", (new, new, old))
else:
frappe.db.sql("rename table `tab%s` to `tab%s`" % (old, new))
frappe.db.multisql({
"mariadb": f"RENAME TABLE `tab{old}` TO `tab{new}`",
"postgres": f"ALTER TABLE `tab{old}` RENAME TO `tab{new}`"
})

def rename_files_and_folders(self, old, new):
# move files


+ 12
- 12
frappe/model/rename_doc.py 파일 보기

@@ -315,8 +315,7 @@ def get_link_fields(doctype):

def update_options_for_fieldtype(fieldtype, old, new):
if frappe.conf.developer_mode:
for name in frappe.db.sql_list("""select parent from
tabDocField where options=%s""", old):
for name in frappe.get_all("DocField", filters={"options": old}, pluck="parent"):
doctype = frappe.get_doc("DocType", name)
save = False
for f in doctype.fields:
@@ -422,20 +421,21 @@ def update_parenttype_values(old, new):
child_doctypes += custom_child_doctypes
fields = [d['fieldname'] for d in child_doctypes]

property_setter_child_doctypes = frappe.db.sql("""\
select value as options from `tabProperty Setter`
where doc_type=%s and property='options' and
field_name in ("%s")""" % ('%s', '", "'.join(fields)),
(new,))
property_setter_child_doctypes = frappe.get_all(
"Property Setter",
filters={
"doc_type": new,
"property": "options",
"field_name": ("in", fields)
},
pluck="value"
)

child_doctypes = list(d['options'] for d in child_doctypes)
child_doctypes += property_setter_child_doctypes
child_doctypes = (d['options'] for d in child_doctypes)

for doctype in child_doctypes:
frappe.db.sql("""\
update `tab%s` set parenttype=%s
where parenttype=%s""" % (doctype, '%s', '%s'),
(new, old))
frappe.db.sql(f"update `tab{doctype}` set parenttype=%s where parenttype=%s", (new, old))

def rename_dynamic_links(doctype, old, new):
for df in get_dynamic_link_map().get(doctype, []):


불러오는 중...
취소
저장