用于生成 ORM 的 SQLAlchemy 模块,从 open-energy-metadata(oem-v1.4.0) JSON 格式的数据模型 (oedatamodel) 读取
项目描述
OEM 到 ORM
从 oemetadata json 文件创建数据库表(和模式)
安装:
pip install oem2orm
用法:
该工具是开放能源元数据 (OEM) 集成到OEP的一部分。要将此工具与 OEP API 一起使用,您需要注册 OEP,因为您需要提供 API-Token。
如果您想上传经过官方审核的 OEM,您必须在GitHub 上克隆 OEP 数据预处理存储库。data-review 文件夹包含所有成功审核的 OEM 文件。
出于安全原因,表只能在现有模式中创建,并且只能在模式“model_draft”和“sandbox”中创建。
请记住,当前状态尚未经过全面测试。该代码仍然容易出错,因为oedialct不完全支持 postgres 类型(列数据类型) - 正在进行中。
终端/CLI-应用程序
一步一步:0. 必须在您的机器上安装和设置 pip 和 python
- 从 requirements.txt 创建环境,并激活
- 把元数据文件放到文件夹 metadata 或者把自己的文件夹放到这个目录下
- 在终端中执行以下操作:
pipx install oem2orm
oem2orm
Enter metadata folder name:
...
- 在提示中提供凭据和文件夹名称
- 该表将被创建
导入为模块
您可以像这样在 Python script.py 中简单地导入此模块:
from oem2orm import oep_oedialect_oem2orm as oem2orm
现在只需像这样调用 oem2orm 中提供的函数:
推荐执行顺序:
- 设置记录器
oem2orm.setup_logger()
- 将数据库 API 连接设置为存储 SQLAlchemy 引擎和元数据的 Namedtuple:
db = oem2orm.setup_db_connection()
- 提供文件夹中的 oem 文件(在当前目录中)。
- 将文件夹名称传递给函数:
metadata_folder = oem2orm.select_oem_dir(oem_folder_name="folder_name")
- 设置一个 SQLAlchemy ORM,包括提供的 oem 文件中的所有数据模型:
orm = oem2orm.collect_ordered_tables_from_oem(db, metadata_folder)
- 在数据库上创建表:
oem2orm.create_tables(db, orm)
- 删除所有已创建的表(sa.metadata 中可用的所有表)
oem2orm.delete_tables(db, orm)
文件:
数据库连接
我们使用一个名为“DB”的全局命名元组来存储 sqlalchemy 连接对象引擎和元数据。namedtuple 可在脚本中使用 import oem2orm。要建立命名元组,请使用函数 setup_db_connection()。现在您可以使用 DB.engine 或 DB.metadata。
oem2orm 生成器
支持的数据类型
空间类型
我们使用 Geoalchemy2 创建具有空间数据类型的列。
数据库支持
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
oem2orm-0.2.8.tar.gz
(20.1 kB
查看哈希)
内置分布
oem2orm-0.2.8-py3-none-any.whl
(21.0 kB
查看哈希)