(trans_id, sgid, sid, did)
| 724 | endpoint='sql') |
| 725 | @pga_login_required |
| 726 | def sql(trans_id, sgid, sid, did): |
| 727 | data = json.loads(request.data) |
| 728 | with_drop = False |
| 729 | if request.args and 'with_drop' in request.args: |
| 730 | with_drop = True if request.args.get('with_drop') == 'true' else False |
| 731 | |
| 732 | helper = ERDHelper(trans_id, sid, did) |
| 733 | conn = _get_connection(sid, did, trans_id) |
| 734 | |
| 735 | sql = '' |
| 736 | tab_foreign_keys = [] |
| 737 | all_nodes = data.get('nodes', {}) |
| 738 | |
| 739 | table_sql = '' |
| 740 | for tab_key, tab_data in all_nodes.items(): |
| 741 | tab_fks = tab_data.pop('foreign_key', []) |
| 742 | tab_foreign_keys.extend(translate_foreign_keys(tab_fks, tab_data, |
| 743 | all_nodes)) |
| 744 | table_sql += '\n\n' + helper.get_table_sql(tab_data, |
| 745 | with_drop=with_drop) |
| 746 | |
| 747 | if with_drop: |
| 748 | for tab_fk in tab_foreign_keys: |
| 749 | fk_sql = fkey_utils.get_delete_sql(conn, tab_fk) |
| 750 | sql += '\n\n' + fk_sql |
| 751 | |
| 752 | if sql != '': |
| 753 | sql += '\n\n' |
| 754 | |
| 755 | sql += table_sql |
| 756 | for tab_fk in tab_foreign_keys: |
| 757 | fk_sql, _ = fkey_utils.get_sql(conn, tab_fk, None) |
| 758 | sql += '\n\n' + fk_sql |
| 759 | |
| 760 | return make_json_response( |
| 761 | data=sql, |
| 762 | status=200 |
| 763 | ) |
| 764 | |
| 765 | |
| 766 | @socketio.on('connect', namespace=SOCKETIO_NAMESPACE) |
no test coverage detected