Fix Gitea MCP ESM resolution error, update configuration, and include project tests/migration files
This commit is contained in:
45
clone_db.py
Normal file
45
clone_db.py
Normal file
@@ -0,0 +1,45 @@
|
||||
import pymysql
|
||||
import os
|
||||
|
||||
def clone_database():
|
||||
try:
|
||||
connection = pymysql.connect(
|
||||
host=os.getenv('DB_HOST', 'localhost'),
|
||||
user=os.getenv('DB_USER', 'root'),
|
||||
password=os.getenv('DB_PASSWORD', '45278434'),
|
||||
charset='utf8mb4',
|
||||
cursorclass=pymysql.cursors.DictCursor
|
||||
)
|
||||
|
||||
with connection.cursor() as cursor:
|
||||
# 1. Create test database
|
||||
cursor.execute("CREATE DATABASE IF NOT EXISTS PM_proto_test")
|
||||
print("Database PM_proto_test created or already exists.")
|
||||
|
||||
# 2. Get all tables from source database
|
||||
cursor.execute("SHOW TABLES FROM PM_proto")
|
||||
tables = cursor.fetchall()
|
||||
|
||||
for table_row in tables:
|
||||
table_name = list(table_row.values())[0]
|
||||
|
||||
# 3. Drop existing table in test DB if exists
|
||||
cursor.execute(f"DROP TABLE IF EXISTS PM_proto_test.{table_name}")
|
||||
|
||||
# 4. Clone schema and data
|
||||
# Note: CREATE TABLE ... LIKE doesn't copy data, and CREATE TABLE ... AS SELECT doesn't copy indexes.
|
||||
# So we use LIKE first, then INSERT INTO ... SELECT *
|
||||
cursor.execute(f"CREATE TABLE PM_proto_test.{table_name} LIKE PM_proto.{table_name}")
|
||||
cursor.execute(f"INSERT INTO PM_proto_test.{table_name} SELECT * FROM PM_proto.{table_name}")
|
||||
print(f"Table {table_name} cloned.")
|
||||
|
||||
connection.commit()
|
||||
print("Database cloning completed successfully.")
|
||||
except Exception as e:
|
||||
print(f"Error during database cloning: {e}")
|
||||
finally:
|
||||
if 'connection' in locals():
|
||||
connection.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
clone_database()
|
||||
Reference in New Issue
Block a user