90 lines
3.3 KiB
Python
90 lines
3.3 KiB
Python
|
|
import sys
|
||
|
|
import os
|
||
|
|
# Add project root to path
|
||
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||
|
|
|
||
|
|
import pymysql
|
||
|
|
from Config.Config import DORIS_HOST, DORIS_PORT, DORIS_USER, DORIS_PWD, DORIS_DATABASE
|
||
|
|
|
||
|
|
def init_db():
|
||
|
|
print(f"Connecting to {DORIS_HOST}:{DORIS_PORT}...")
|
||
|
|
try:
|
||
|
|
conn = pymysql.connect(
|
||
|
|
host=DORIS_HOST,
|
||
|
|
port=DORIS_PORT,
|
||
|
|
user=DORIS_USER,
|
||
|
|
password=DORIS_PWD,
|
||
|
|
database=DORIS_DATABASE,
|
||
|
|
charset='utf8mb4'
|
||
|
|
)
|
||
|
|
cursor = conn.cursor()
|
||
|
|
|
||
|
|
sql = """
|
||
|
|
CREATE TABLE IF NOT EXISTS t_douyin_record (
|
||
|
|
id VARCHAR(50) NOT NULL COMMENT "UUID",
|
||
|
|
video_name VARCHAR(500) COMMENT "视频名称",
|
||
|
|
original_text TEXT COMMENT "原始粘贴文本",
|
||
|
|
obs_url VARCHAR(500) COMMENT "OBS视频链接",
|
||
|
|
transcript TEXT COMMENT "文案内容",
|
||
|
|
status VARCHAR(20) COMMENT "状态: PROCESSING, COMPLETED, FAILED",
|
||
|
|
create_time DATETIME COMMENT "创建时间"
|
||
|
|
)
|
||
|
|
UNIQUE KEY(id)
|
||
|
|
DISTRIBUTED BY HASH(id) BUCKETS 1
|
||
|
|
PROPERTIES (
|
||
|
|
"replication_allocation" = "tag.location.default: 1"
|
||
|
|
);
|
||
|
|
"""
|
||
|
|
# Note: replication_num is deprecated in newer Doris, using replication_allocation.
|
||
|
|
# If it fails, I will revert to replication_num.
|
||
|
|
|
||
|
|
print("Executing CREATE TABLE...")
|
||
|
|
cursor.execute(sql)
|
||
|
|
print("Table t_douyin_record created (or already exists).")
|
||
|
|
|
||
|
|
cursor.close()
|
||
|
|
conn.close()
|
||
|
|
return True
|
||
|
|
except Exception as e:
|
||
|
|
print(f"Error: {e}")
|
||
|
|
# Try with replication_num if allocation fails
|
||
|
|
if "replication_allocation" in str(e):
|
||
|
|
print("Retrying with replication_num...")
|
||
|
|
try:
|
||
|
|
conn = pymysql.connect(
|
||
|
|
host=DORIS_HOST,
|
||
|
|
port=DORIS_PORT,
|
||
|
|
user=DORIS_USER,
|
||
|
|
password=DORIS_PWD,
|
||
|
|
database=DORIS_DATABASE,
|
||
|
|
charset='utf8mb4'
|
||
|
|
)
|
||
|
|
cursor = conn.cursor()
|
||
|
|
sql = """
|
||
|
|
CREATE TABLE IF NOT EXISTS t_douyin_record (
|
||
|
|
id VARCHAR(50) NOT NULL COMMENT "UUID",
|
||
|
|
video_name VARCHAR(500) COMMENT "视频名称",
|
||
|
|
original_text TEXT COMMENT "原始粘贴文本",
|
||
|
|
obs_url VARCHAR(500) COMMENT "OBS视频链接",
|
||
|
|
transcript TEXT COMMENT "文案内容",
|
||
|
|
status VARCHAR(20) COMMENT "状态: PROCESSING, COMPLETED, FAILED",
|
||
|
|
create_time DATETIME COMMENT "创建时间"
|
||
|
|
)
|
||
|
|
UNIQUE KEY(id)
|
||
|
|
DISTRIBUTED BY HASH(id) BUCKETS 1
|
||
|
|
PROPERTIES (
|
||
|
|
"replication_num" = "1"
|
||
|
|
);
|
||
|
|
"""
|
||
|
|
cursor.execute(sql)
|
||
|
|
print("Table t_douyin_record created with replication_num.")
|
||
|
|
cursor.close()
|
||
|
|
conn.close()
|
||
|
|
return True
|
||
|
|
except Exception as e2:
|
||
|
|
print(f"Retry Error: {e2}")
|
||
|
|
return False
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
init_db()
|