12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import mysql.connector
- import sys
- import pyperclip
- import re
- def underscore_to_camelcase(text):
- parts = text.split('_')
- camelcase = ''.join(word.title() for word in parts)
- camelcase = re.sub(r'\W+', '', camelcase)
- camelcase = camelcase[0].upper() + camelcase[1:]
- return camelcase
- table_name = sys.argv[1]
- cnx = mysql.connector.connect(user='root', password='root',
- host='localhost', database='project-manager', port='3306')
- cursor = cnx.cursor()
- sql = f"SELECT DISTINCT column_name, column_type, column_comment FROM information_schema.columns WHERE table_name = '{table_name}'"
- cursor.execute(sql)
- result = cursor.fetchall()
- camelcase = underscore_to_camelcase(table_name)
- out = ''
- out += f'''<?php
- namespace app\common\model;
- class {camelcase} extends Base
- {{
- '''
- out += " protected $schema = [\n"
- for row in result:
- column_name = row[0]
- column_type = row[1].split("(")[0]
- column_comment = row[2] if row[2] else column_name
- out += f" '{column_name}'\t => '{column_type}',\t // {column_comment}\n"
- out += " ];\n"
- out += "}"
- print(out)
- pyperclip.copy(out.encode().decode())
- print('已写入粘贴板')
- cursor.close()
- cnx.close()
|