pedsnet通用数据模型定义
pedsnetcdms的Python项目详细描述
#pedsnetcdms
用于cdm模型类和ddl自动生成的python应用程序。
pedsnet cdms应用程序为pedsnet、vocab、i2b2和pcornet cdms创建可导入python的sqlalchemy和django样式的模型。此外,可以从这些模型创建alembic和django迁移。alembic迁移可用于为所有四个cdm自动生成ddl文件。
pedsnetcdms应用程序基于json格式的模型声明性定义(可在models.json
文件中找到)和从这些模型动态生成python类(可在dj_makers.py
和sa_makers.py
文件中找到)。生成函数用于每个cdm的models.py
和sa_models.py
文件,将模型类放在orms可以找到它们的地方。settings.py
、alembic.ini
和alembic/env.py
文件只是orm模块配置。
##安装
一个pip install pedsnetcdms
应该可以让您获得包含生成的模型和迁移的包,以便导入到您的python环境中。
但是,如果要自己生成ddl或直接在数据库上使用迁移,则必须克隆存储库并安装以下部分或全部python包及其(在某些情况下为非python)依赖项,具体取决于您使用的dbms:
- CX Oracle
- 心理2
- PymSql
- mysql python
这是留给读者的练习。(尽管也许有一个文档文件…公关任何人?)
##DDL文件
postgresql、oracle、sql server和mysql方言中所有四个cdm的ddl文件都可以在pedsnetcdms/ddloutput
目录中找到。它们是假设的,所以如果你发现问题,请测试它们并发布一个问题。
##模型使用
django模型在pedsnetcdms.<CDM>.models
上可用,sqlalchemy模型在pedsnetcdms.<CDM>.sa_models
上可用,其中<CDM>
应替换为以下之一:
- PEDSNETCDM
- itwobtowcdm
- VOCABCDM
- PCornetCDM
您还可以在djangoINSTALLED_APPS
设置中包含这些应用程序中的任何一个。
##DDL生成
为了生成ddl,请从上面的列表中为dbms安装所需的包,克隆存储库并安装该包。
编辑所需cdm的pedsnetcdms/<CDM>/alembic/env.py
文件,以限制将为其输出ddl的dbms(提示:在run_migrations_offline
函数中元组的迭代列表)。
从pedsnetcdms
包目录(文件所在的位置)中,运行alembic -n <CDM> upgrade head --sql
并观看ddl文件的出现!
##直接迁移使用
如上所述,安装需求、克隆和安装软件包。
编辑alembic.ini
或settings.py
文件以指定要连接到的数据库uri(请注意,该设置在alembic.ini
中的每个cdms节下重复)。
运行alembic -n <CDM> upgrade head
或python manage.py migrate <CDM>
。