一个假的sql数据库生成器包

sqlfaker的Python项目详细描述


使用sqlfaker创建数据结构

sqlfaker是一个python库,可用于生成关系数据结构并用伪数据填充这些结构。在

安装

sqlfaker可以通过来自pypi.org的pip安装。只需在终端或命令提示符下运行以下命令。在

pip install sqlfaker

阶级结构

此项目允许您定义建立在DatabaseTable和{}概念之上的关系数据结构。在

一个Database可以有多个Table对象,每个对象又可以有多个Column对象。有两个类继承自Column类-ForeignKey和{}。这些允许您创建关键列。在

使用示例

sqlfaker可用于生成新数据库。到目前为止,Database类只支持MySQL/MariaDB语法(当涉及到SQL导出时)。新的数据库类型将随着时间的推移而实现。在

^{pr2}$

sqlfaker也可用于指定表的架构。这由三种方法支持:add_primary_keyadd_column和{}。根据应创建的列的类型,add方法需要不同的参数。在

The order of column creation must follow consider their interdependencies (much like in SQL). If you e.g. create a foreign key column, you need to create the referenced primary key column first.

# add columns to studyprogram tablemy_db.tables["studyprogram"].add_primary_key(column_name="studyprogram_id")my_db.tables["studyprogram"].add_column(column_name="shortname",data_type="varchar(50)",data_target="name")my_db.tables["studyprogram"].add_column(column_name="startdate",data_type="date",data_target="date")# add columns to student tablemy_db.tables["student"].add_primary_key(column_name="student_id")my_db.tables["student"].add_column(column_name="firstname",data_type="varchar(50)",data_target="first_name")my_db.tables["student"].add_column(column_name="lastname",data_type="varchar(50)",data_target="last_name")my_db.tables["student"].add_foreign_key(column_name="studiengang_id",target_table="studiengang",target_column="studiengang_id")

一旦定义了数据库结构,就可以使用sqlfaker生成数据,然后将完整(或部分)sql脚本导出到磁盘。所有生成的SQL脚本的语法都遵循MySQL/MariaDB。在

data_target is used to specify the type of fake data that is generated to fill the respective column. sqlfaker uses Python faker for fake data generation. You can therefore reference all faker data types as data target. See faker's documentation for more details.

my_db.generate_data()my_db.export_sql("test.sql")

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像