--suffix '_test_5' """ import argparse import sys import yaml from sherlock.common.redshift_schema import RedShiftLogSchema def create_new_yaml(suffix, input_file=sys.stdin): schema = RedShiftLogSchema(yaml.load(input_file)) for table_name in schema.tables().keys(): schema.table_rename( table_name, '{original_name}{suffix}'.format( original_name=table_name, suffix=suffix ) ) return yaml.dump(schema.schema(), default_flow_style=False) if __name__ == '__main__': parser = argparse.ArgumentParser(description='Rename table with suffix') parser.add_argument('--suffix') args = parser.parse_args() print RedShiftLogSchema.header() print create_new_yaml(args.suffix)
help="path to schema file into which new table is merged" ) args = parser.parse_args() args.foreign.sort() return args if __name__ == "__main__": args = get_cmd_line_args() schema = RedShiftLogSchema() version = 0 if args.merge_with_schema: with open(args.merge_with_schema, 'r') as yaml_file: schema = RedShiftLogSchema(yaml.safe_load(yaml_file)) if schema.get_table(args.table) is not None: schema.table_delete(args.table) version = schema.version_get() sm = RedShiftSchemaMaker(exclude=args.exclude, prune=args.prune) for line in fileinput.input('-'): process_row(sm, simplejson.loads(line), args) table = sm.mk_table(sm.schema, args.table, args.source, args.source_type, add_source_filename=args.add_source_filename) schema.table_add(args.table, table[args.table]) schema.version_set(version + 1) sys.stdout.write(schema.header()) sys.stdout.write(yaml.dump(schema.schema(), default_flow_style=False))
Usage: cat schema/db.yaml | sherlock/tools/table_rename.py \ --suffix '_test_5' """ import argparse import sys import yaml from sherlock.common.redshift_schema import RedShiftLogSchema def create_new_yaml(suffix, input_file=sys.stdin): schema = RedShiftLogSchema(yaml.load(input_file)) for table_name in schema.tables().keys(): schema.table_rename( table_name, '{original_name}{suffix}'.format(original_name=table_name, suffix=suffix)) return yaml.dump(schema.schema(), default_flow_style=False) if __name__ == '__main__': parser = argparse.ArgumentParser(description='Rename table with suffix') parser.add_argument('--suffix') args = parser.parse_args() print RedShiftLogSchema.header() print create_new_yaml(args.suffix)
args.foreign.sort() return args if __name__ == "__main__": args = get_cmd_line_args() schema = RedShiftLogSchema() version = 0 if args.merge_with_schema: with open(args.merge_with_schema, 'r') as yaml_file: schema = RedShiftLogSchema(yaml.safe_load(yaml_file)) if schema.get_table(args.table) is not None: schema.table_delete(args.table) version = schema.version_get() sm = RedShiftSchemaMaker(exclude=args.exclude, prune=args.prune) for line in fileinput.input('-'): process_row(sm, simplejson.loads(line), args) table = sm.mk_table(sm.schema, args.table, args.source, args.source_type, add_source_filename=args.add_source_filename) schema.table_add(args.table, table[args.table]) schema.version_set(version + 1) sys.stdout.write(schema.header()) sys.stdout.write(yaml.dump(schema.schema(), default_flow_style=False))
parser = argparse.ArgumentParser( description=""" This is a tool to maniuplate Redshift schema without manually editing the yaml defintion. The program takes its input from standard input. Example Usage: cat schema/db.yaml | %(prog)s table_create -s '' --source-type DICT """, formatter_class=argparse.RawTextHelpFormatter, ) subparsers = parser.add_subparsers() set_table_create_parser(subparsers) set_table_delete_parser(subparsers) set_column_add_parser(subparsers) set_column_remove_parser(subparsers) set_sortkeys_add_parser(subparsers) args = parser.parse_args() return args if __name__ == "__main__": args = get_cmd_line_args() schema = RedShiftLogSchema(yaml.load(sys.stdin.read()) or dict()) version = schema.version_get() args.func(schema, args) schema.version_set(version + 1) sys.stdout.write(RedShiftLogSchema.header()) sys.stdout.write(yaml.dump(schema.schema(), default_flow_style=False))
parser = argparse.ArgumentParser( description=""" This is a tool to maniuplate Redshift schema without manually editing the yaml defintion. The program takes its input from standard input. Example Usage: cat schema/db.yaml | %(prog)s table_create -s '' --source-type DICT """, formatter_class=argparse.RawTextHelpFormatter, ) subparsers = parser.add_subparsers() set_table_create_parser(subparsers) set_table_delete_parser(subparsers) set_column_add_parser(subparsers) set_column_remove_parser(subparsers) set_sortkeys_add_parser(subparsers) args = parser.parse_args() return args if __name__ == "__main__": args = get_cmd_line_args() schema = RedShiftLogSchema(yaml.load(sys.stdin.read()) or dict()) version = schema.version_get() args.func(schema, args) schema.version_set(version + 1) sys.stdout.write(RedShiftLogSchema.header()) sys.stdout.write(yaml.dump(schema.schema(), default_flow_style=False))