MCPcopy
hub / github.com/coleifer/sqlite-web / add_column

Function add_column

sqlite_web/sqlite_web.py:571–619  ·  view source on GitHub ↗
(table)

Source from the content-addressed store, hash-verified

569@app.route('/<table>/add-column/', methods=['GET', 'POST'])
570@require_table
571def add_column(table):
572 dataset = get_dataset()
573
574 class JsonField(TextField):
575 field_type = 'JSON'
576 column_mapping = OrderedDict((
577 ('TEXT', TextField),
578 ('INTEGER', IntegerField),
579 ('REAL', FloatField),
580 ('BLOB', BlobField),
581 ('JSON', JsonField),
582 ('BOOL', BooleanField),
583 ('DATETIME', DateTimeField),
584 ('DATE', DateField),
585 ('DECIMAL', DecimalField),
586 ('TIME', TimeField),
587 ('VARCHAR', CharField)))
588
589 request_data = get_request_data()
590 col_type = request_data.get('type')
591 name = request_data.get('name', '')
592
593 if request.method == 'POST':
594 name = re.sub(r'[^\w]+', '_', name.strip())
595 if name and col_type in column_mapping:
596 try:
597 migrate(
598 dataset._migrator.add_column(
599 table,
600 name,
601 column_mapping[col_type](null=True)))
602 except Exception as exc:
603 flash('Error attempting to add column "%s": %s' % (name, exc),
604 'danger')
605 app.logger.exception('Error attempting to add column.')
606 else:
607 flash('Column "%s" was added successfully!' % name, 'success')
608 dataset.update_cache(table)
609 return redirect(url_for('table_structure', table=table))
610 else:
611 flash('Name and column type are required.', 'danger')
612
613 return render_template(
614 'add_column.html',
615 col_type=col_type,
616 column_mapping=column_mapping,
617 name=name,
618 table=table,
619 table_sql=dataset.get_table_sql(table))
620
621@app.route('/<table>/drop-column/', methods=['GET', 'POST'])
622@require_table

Callers

nothing calls this directly

Calls 3

get_datasetFunction · 0.85
get_request_dataFunction · 0.85
get_table_sqlMethod · 0.80

Tested by

no test coverage detected