59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
"""
|
|
初始化国家数据
|
|
"""
|
|
import json
|
|
from database import SessionLocal, engine, Base
|
|
from models import Country
|
|
|
|
|
|
def init_countries():
|
|
# 读取国家数据
|
|
with open('/home/ubuntu/nanocode/fumamxCRM/countryinfo.json', 'r', encoding='utf-8') as f:
|
|
data = json.load(f)
|
|
|
|
countries_data = data.get('data', [])
|
|
|
|
db = SessionLocal()
|
|
try:
|
|
# 清空现有数据
|
|
db.query(Country).delete()
|
|
|
|
# 插入新数据
|
|
for item in countries_data:
|
|
country = Country(
|
|
country_id=item.get('countryid'),
|
|
continent_id=item.get('continentid'),
|
|
sort_order=item.get('sortorder', 0),
|
|
cn_name=item.get('cnname'),
|
|
en_name=item.get('enname'),
|
|
en_name_ali=item.get('ennameAli'),
|
|
short_name=item.get('shortname'),
|
|
short_name_ali=item.get('shortnameAli'),
|
|
pinyin=item.get('pinyin'),
|
|
del_state=item.get('delstate', 0)
|
|
)
|
|
db.add(country)
|
|
|
|
db.commit()
|
|
print(f"✅ 成功导入 {len(countries_data)} 个国家/地区")
|
|
|
|
# 显示前10个
|
|
print("\n前10个国家示例:")
|
|
for c in db.query(Country).limit(10).all():
|
|
print(f" {c.cn_name} ({c.short_name}) - {c.en_name}")
|
|
|
|
except Exception as e:
|
|
db.rollback()
|
|
print(f"❌ 导入失败: {e}")
|
|
finally:
|
|
db.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# 创建表
|
|
Base.metadata.create_all(bind=engine)
|
|
print("📦 国家表创建完成")
|
|
|
|
# 导入数据
|
|
init_countries()
|