--- a +++ b/development/csv2db/main.py @@ -0,0 +1,94 @@ +import sys +import argparse +import csv2db + + +def main(args): + parser = argparse.ArgumentParser(description='To get arguments') + + parser.add_argument('-pa', + '--path', + type=str, + help='Path of the CSV file', + required=True) + + parser.add_argument('-ps', + '--password', + type=str, + help='MySQL password', + required=True) + + parser.add_argument('-db', + '--database', + type=str, + help='Database name', + required=True) + + parser.add_argument('-t', + '--table', + type=str, + help='Table name', + required=True) + + parser.add_argument('-ho', + '--host', + type=str, + default='127.0.0.1', + help='Host ip address', + required=False) + + parser.add_argument('-p', + '--port', + type=str, + default='3306', + help='Port of MySQL', + required=False) + + parser.add_argument('-u', + '--user', + type=str, + default='root', + help='MySQL user', + required=False) + + parser.add_argument('-c', + '--columns', + nargs='+', + type=str, + default=None, + help='Array of desired columns names. Default is all columns', + required=False) + + args = parser.parse_args() + + to_db = csv2db.CSV2DB(args.path, + args.password, + args.database, + args.table, + args.host, + args.user, + args.port, + args.columns) + + print('Select columns of dataframe') + to_db.select_column() + print('Remove redundant newlines') + to_db.rm_multi_newline() + print('Modify columns name for database') + to_db.norm_column_name() + print('Check strings length in the dataframe') + to_db.check_length() + print('Create a new database') + to_db.create_database() + print('Create a database engine') + to_db.create_engine() + print('Convert dataframe to MySQL database') + to_db.to_sql() + print('Add primary key to the database') + to_db.add_primary_key() + print('Change name column type to VARCHAR from TEXT') + to_db.change_type() + + +if __name__ == '__main__': + main(sys.argv[1:])