在准备环境前提交次全部更改。
This commit is contained in:
89
scripts/ops/mvp_db_setup.py
Normal file
89
scripts/ops/mvp_db_setup.py
Normal file
@@ -0,0 +1,89 @@
|
||||
"""
|
||||
MVP 数据库准备脚本
|
||||
|
||||
1. 检查 test_zqyy_app 库中 test schema 和 xcx-test 表是否存在
|
||||
2. 如果不存在则创建
|
||||
3. 插入测试数据 "t91"
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# 加载根 .env
|
||||
from dotenv import load_dotenv
|
||||
load_dotenv(Path(__file__).resolve().parents[2] / ".env", override=False)
|
||||
|
||||
import psycopg2
|
||||
|
||||
DB_HOST = os.getenv("DB_HOST", "localhost")
|
||||
DB_PORT = os.getenv("DB_PORT", "5432")
|
||||
DB_USER = os.getenv("DB_USER", "")
|
||||
DB_PASSWORD = os.getenv("DB_PASSWORD", "")
|
||||
APP_DB_NAME = os.getenv("APP_DB_NAME", "test_zqyy_app")
|
||||
|
||||
|
||||
def main():
|
||||
print(f"连接数据库: {DB_HOST}:{DB_PORT}/{APP_DB_NAME} (用户: {DB_USER})")
|
||||
|
||||
conn = psycopg2.connect(
|
||||
host=DB_HOST,
|
||||
port=DB_PORT,
|
||||
user=DB_USER,
|
||||
password=DB_PASSWORD,
|
||||
dbname=APP_DB_NAME,
|
||||
)
|
||||
conn.autocommit = True
|
||||
|
||||
try:
|
||||
with conn.cursor() as cur:
|
||||
# 1. 检查 test schema
|
||||
cur.execute(
|
||||
"SELECT 1 FROM information_schema.schemata WHERE schema_name = 'test'"
|
||||
)
|
||||
if cur.fetchone():
|
||||
print("✓ test schema 已存在")
|
||||
else:
|
||||
cur.execute("CREATE SCHEMA test")
|
||||
print("✓ test schema 已创建")
|
||||
|
||||
# 2. 检查 xcx-test 表(注意表名含连字符,需要双引号)
|
||||
cur.execute("""
|
||||
SELECT 1 FROM information_schema.tables
|
||||
WHERE table_schema = 'test' AND table_name = 'xcx-test'
|
||||
""")
|
||||
if cur.fetchone():
|
||||
print('✓ test."xcx-test" 表已存在')
|
||||
else:
|
||||
cur.execute("""
|
||||
CREATE TABLE test."xcx-test" (
|
||||
ti TEXT
|
||||
)
|
||||
""")
|
||||
print('✓ test."xcx-test" 表已创建')
|
||||
|
||||
# 3. 查看现有数据
|
||||
cur.execute('SELECT ti FROM test."xcx-test" LIMIT 5')
|
||||
rows = cur.fetchall()
|
||||
if rows:
|
||||
print(f" 现有数据: {[r[0] for r in rows]}")
|
||||
|
||||
# 4. 插入 "t91"
|
||||
cur.execute(
|
||||
'INSERT INTO test."xcx-test" (ti) VALUES (%s)', ("t91",)
|
||||
)
|
||||
print('✓ 已插入 ti = "t91"')
|
||||
|
||||
# 5. 验证
|
||||
cur.execute('SELECT ti FROM test."xcx-test" ORDER BY ti')
|
||||
rows = cur.fetchall()
|
||||
print(f" 当前全部数据: {[r[0] for r in rows]}")
|
||||
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
print("\n数据库准备完成。")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user