datafaker icon indicating copy to clipboard operation
datafaker copied to clipboard

ValueError: empty range for randrange() (11,1, -10)

Open huanjoyous opened this issue 5 years ago • 19 comments

(venv366-64bit-mysql) D:\012_python3\datafaker-master>datafaker mysql mysql+mysqldb://api_test:[email protected]:3306/mailserver virtual_users 2 Exception in thread Thread-1: Traceback (most recent call last): File "c:\python366-64bit\Lib\threading.py", line 916, in _bootstrap_inner self.run() File "c:\python366-64bit\Lib\threading.py", line 864, in run self._target(*self._args, **self.kwargs) File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\dbs\basedb.py", line 42, in fake_data columns = self.fake_column() File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\dbs\basedb.py", line 53, in fake_column columns.append(self.fakedata.do_fake(item['cmd'], item['args'])) File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\fakedata.py", line 215, in do_fake return method(*args) File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\fakedata.py", line 40, in fake_int return self.faker.random_int(min, max) File "D:\evn\venv366-64bit-mysql\lib\site-packages\faker\providers_init.py", line 106, in random_int return self.generator.random.randrange(min, max + 1, step) File "D:\evn\venv366-64bit-mysql\lib\random.py", line 199, in randrange raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width)) ValueError: empty range for randrange() (11,1, -10)

huanjoyous avatar Oct 30 '19 09:10 huanjoyous

你好 给下表schema

gangly avatar Oct 30 '19 09:10 gangly

From: GaryLi Date: 2019-10-30 17:54 To: gangly/datafaker CC: huanjoyous; Author Subject: Re: [gangly/datafaker] ValueError: empty range for randrange() (11,1, -10) (#7) 你好 给下表schema — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

huanjoyous avatar Oct 30 '19 09:10 huanjoyous

image

huanjoyous avatar Oct 30 '19 10:10 huanjoyous

可以参考下使用元文件方法:https://github.com/gangly/datafaker/blob/master/doc/%E4%BD%BF%E7%94%A8%E4%B8%BE%E4%BE%8B.md

id||int||自增id[:inc(id)] name||varchar(20)||学生名字 school||varchar(20)||学校名字[:enum(file://names.txt)] nickname||varchar(20)||学生小名[:enum(鬼泣, 高小王子, 歌神, 逗比)] age||int||学生年龄 class_num||int||班级人数[:int(10, 100)] score||decimal(4,2)||成绩[:decimal(4,2,1)] phone||int(20)||电话号码[:phone_number] email||varchar(64)||家庭网络邮箱[:email] ip||varchar(32)||IP地址[:ipv4] address||text||家庭地址[:address]

gangly avatar Oct 30 '19 10:10 gangly

你好~作者~github上的demo测试不了,咋搞呢?

------------------ Original ------------------ From: GaryLi <[email protected]> Date: Wed,Oct 30,2019 6:06 PM To: gangly/datafaker <[email protected]> Cc: huanjoyous <[email protected]>, Author <[email protected]> Subject: Re: [gangly/datafaker] ValueError: empty range for randrange() (11,1, -10) (#7)

可以参考下使用元文件方法:https://github.com/gangly/datafaker/blob/master/doc/%E4%BD%BF%E7%94%A8%E4%B8%BE%E4%BE%8B.md

id||int||自增id[:inc(id)] name||varchar(20)||学生名字 school||varchar(20)||学校名字[:enum(file://names.txt)] nickname||varchar(20)||学生小名[:enum(鬼泣, 高小王子, 歌神, 逗比)] age||int||学生年龄 class_num||int||班级人数[:int(10, 100)] score||decimal(4,2)||成绩[:decimal(4,2,1)] phone||int(20)||电话号码[:phone_number] email||varchar(64)||家庭网络邮箱[:email] ip||varchar(32)||IP地址[:ipv4] address||text||家庭地址[:address]

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

huanjoyous avatar Oct 30 '19 10:10 huanjoyous

5.2例子可能有些bug,用5.3例子中使用方法吧 5.3 从本地文件meta.txt中读取元数据,以,,分隔符构造10条数据,打印在屏幕上

按照mysql表结构写个元素数据文件,然后指定--meta参数 datafaker rdb mysql+mysqldb://root:root@localhost:3600/test stu 10 --meta meta.txt

gangly avatar Oct 30 '19 10:10 gangly

好的。明天我再试试。多谢作者哈

发自我的iPhone

------------------ Original ------------------ From: GaryLi <[email protected]> Date: Wed,Oct 30,2019 6:23 PM To: gangly/datafaker <[email protected]> Cc: huanjoyous <[email protected]>, Author <[email protected]> Subject: Re: [gangly/datafaker] ValueError: empty range for randrange() (11,1, -10) (#7)

huanjoyous avatar Oct 30 '19 10:10 huanjoyous

RT:屏幕打印有,写入数据报错了,py3.6.5不支持?

[96, 'SFiRbZYilWrWadBDnLed', 'C:\Users\Desktop\test\names.txt', '逗比', 63, 77, 8.34, '15719298857', '[email protected]', '160.143.224.32', '安徽省杨市吉区吴路A座 122793'] [94, 'ZVKjBkApVeGzp', 'C:\Users\Desktop\test\names.txt', '歌神', 67, 92, 77.68, '13494852157', '[email protected]', '183.183.178.187', '北京市云市西夏韩街n座 459345'] [95, 'WfyCMzLYefbHlvN', 'C:\Users\\Desktop\test\names.txt', '鬼泣', 23, 69, 24.78, '15746325637', '[email protected]', '169.249.200.153', '宁夏回族自治区兴安盟县牧野桂街C座 459630'] [98, 'OuQmuCoTMU', 'C:\Users\\Desktop\test\names.txt', '鬼泣', 62, 23, 8.48, '13459395538', '[email protected]', '198.50.198.89', '吉林省刚县牧野杜街f座 246243'] [97, 'cfKPjseWuz', 'C:\Users\\Desktop\test\names.txt', '鬼泣', 74, 35, 3.9, '15957216050', '[email protected]', '169.253.109.59', '山东省阳市南溪兰州街R座 143357'] [99, 'hPnRFgbcUwSk', 'C:\Users\\Desktop\test\names.txt', '逗比', 35, 20, 16.48, '13357756972', '[email protected]', '192.175.4.69', '甘肃省丽丽市长寿张家港路n座 753250'] time used: 3.058 s

(venv366-64bit-mysql) C:\Users>datafaker rdb mysql+mysqldb://api_test:[email protected]:3306/test stu 10 --meta C:\Users\Desktop\test\meta.txt Exception in thread Thread-2: Traceback (most recent call last): File "c:\python366-64bit\Lib\threading.py", line 916, in _bootstrap_inner self.run() File "c:\python366-64bit\Lib\threading.py", line 864, in run self._target(*self._args, **self._kwargs) File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\dbs\basedb.py", line 96, in save self.save_data(lines) File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\dbs\rdbdb.py", line 32, in save_data self.session.execute(sql) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\orm\session.py", line 1269, in execute clause, params or {} File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 988, in execute return meth(self, multiparams, params) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\sql\elements.py", line 287, in _execute_on_connection return connection._execute_clauseelement(self, multiparams, params) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1107, in _execute_clauseelement distilled_params, File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1253, in _execute_context e, statement, parameters, cursor, context File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1475, in _handle_dbapi_exception util.reraise(*exc_info) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\util\compat.py", line 153, in reraise raise value File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1249, in _execute_context cursor, statement, parameters, context File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\default.py", line 552, in do_execute cursor.execute(statement, parameters) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 191, in execute query = query.encode(db.encoding) UnicodeEncodeError: 'latin-1' codec can't encode characters in position 147-150: ordinal not in range(256)

time used: 0.691 s

From: GaryLi Date: 2019-10-30 18:05 To: gangly/datafaker CC: huanjoyous; Author Subject: Re: [gangly/datafaker] ValueError: empty range for randrange() (11,1, -10) (#7) 可以参考下使用元文件方法:https://github.com/gangly/datafaker/blob/master/doc/%E4%BD%BF%E7%94%A8%E4%B8%BE%E4%BE%8B.md id||int||自增id[:inc(id)] name||varchar(20)||学生名字 school||varchar(20)||学校名字[:enum(file://names.txt)] nickname||varchar(20)||学生小名[:enum(鬼泣, 高小王子, 歌神, 逗比)] age||int||学生年龄 class_num||int||班级人数[:int(10, 100)] score||decimal(4,2)||成绩[:decimal(4,2,1)] phone||int(20)||电话号码[:phone_number] email||varchar(64)||家庭网络邮箱[:email] ip||varchar(32)||IP地址[:ipv4] address||text||家庭地址[:address] — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

huanjoyous avatar Oct 31 '19 00:10 huanjoyous

检查下数据表编码是不是utf8

gangly avatar Oct 31 '19 01:10 gangly

确定是utf8

mysql> show variables like '%char%'; +--------------------------+-----------------------------------------+ | Variable_name | Value | +--------------------------+-----------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /mysql/mysql-5.7.28/share/charsets/ | +--------------------------+-----------------------------------------+ 8 rows in set (0.00 sec)

mysql> show create table stu; +-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | stu | CREATE TABLE stu ( id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', name varchar(20) NOT NULL COMMENT '学生名字', school varchar(20) NOT NULL COMMENT '学校名字', nickname varchar(20) NOT NULL COMMENT '学生小名', age int(11) NOT NULL COMMENT '学生年龄', class_num int(11) NOT NULL COMMENT '班级人数', score decimal(4,2) NOT NULL COMMENT '成绩', phone int(20) NOT NULL COMMENT '电话号码', email varchar(64) DEFAULT NULL COMMENT '家庭网络邮箱', ip varchar(32) DEFAULT NULL COMMENT 'IP地址', address text COMMENT '家庭地址', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

mysql>

From: GaryLi Date: 2019-10-31 09:25 To: gangly/datafaker CC: huanjoyous; Author Subject: Re: [gangly/datafaker] ValueError: empty range for randrange() (11,1, -10) (#7) 检查下数据表编码是不是utf8 — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

huanjoyous avatar Oct 31 '19 01:10 huanjoyous

已经更新文档,请按照文档重新执行。 需要重新建表、写meta文件 datafaker rdb mysql+mysqldb://root:root@localhost:3306/test?charset=utf8 stu 10 --meta meta.txt

gangly avatar Oct 31 '19 06:10 gangly

RT:datafaker 0.5.1 所有的表都是重建

执行的你的脚本: create table stu ( id int unsigned auto_increment primary key COMMENT '自增id', name varchar(20) not null comment '学生名字', school varchar(20) not null comment '学校名字', nickname varchar(20) not null comment '学生小名', age int not null comment '学生年龄', class_num int not null comment '班级人数', score decimal(4,2) not null comment '成绩', phone bigint not null comment '电话号码', email varchar(64) comment '家庭网络邮箱', ip varchar(32) comment 'IP地址', address text comment '家庭地址' ) engine=InnoDB default charset=utf8;

报错如下:

(venv366-64bit-mysql) D:\012_python3\datafaker-master>datafaker rdb mysql+mysqldb://api_test:[email protected]:3306/test?charset=utf8 stu 10 --meta C:\Users\Desktop\test\meta.txt Exception in thread Thread-2: Traceback (most recent call last): File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1249, in _execute_context cursor, statement, parameters, context File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\default.py", line 552, in do_execute cursor.execute(statement, parameters) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 209, in execute res = self._query(query) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 315, in _query db.query(q) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\connections.py", line 226, in query _mysql.connection.query(self, query) MySQLdb._exceptions.IntegrityError: (1062, "Duplicate entry '1' for key 'PRIMARY'")

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "c:\python366-64bit\Lib\threading.py", line 916, in _bootstrap_inner self.run() File "c:\python366-64bit\Lib\threading.py", line 864, in run self._target(*self._args, **self._kwargs) File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\dbs\basedb.py", line 96, in save self.save_data(lines) File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\dbs\rdbdb.py", line 32, in save_data self.session.execute(sql) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\orm\session.py", line 1269, in execute clause, params or {} File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 988, in execute return meth(self, multiparams, params) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\sql\elements.py", line 287, in _execute_on_connection return connection._execute_clauseelement(self, multiparams, params) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1107, in _execute_clauseelement distilled_params, File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1253, in _execute_context e, statement, parameters, cursor, context File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1473, in _handle_dbapi_exception util.raise_from_cause(sqlalchemy_exception, exc_info) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\util\compat.py", line 398, in raise_from_cause reraise(type(exception), exception, tb=exc_tb, cause=cause) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\util\compat.py", line 152, in reraise raise value.with_traceback(tb) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1249, in _execute_context cursor, statement, parameters, context File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\default.py", line 552, in do_execute cursor.execute(statement, parameters) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 209, in execute res = self._query(query) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 315, in _query db.query(q) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\connections.py", line 226, in query _mysql.connection.query(self, query) sqlalchemy.exc.IntegrityError: (MySQLdb._exceptions.IntegrityError) (1062, "Duplicate entry '1' for key 'PRIMARY'") [SQL: insert into stu (id,name,school,nickname,age,class_num,score,phone,email,ip,address) values (0,'BihrNeBlHqjBdXaJ','gj','鬼泣',0,46,10.95,18955264102,'[email protected]','206.226.233.28','四川省佛山县清河孙 路d座 145073'),(1,'YPuCwuSvyS','zGYexxNdD','逗比',18,85,81.23,15124335346,'[email protected]','203.101.109.135','云南省呼和浩特市白云武街Z座 463500'),(2,'HnAuMDAFpmcg','xDbPlQUReC','鬼泣',74,65,83.67,13207551792 ,'[email protected]','198.48.127.71','黑龙江省林市长寿福州路z座 840762'),(3,'TzJjBOddPzecLi','JZPXPVqC','高小王子',52,45,32.51,18174405188,'[email protected]','198.51.120.242','重庆市嘉禾县友好马鞍山街R座 6388 43'),(4,'dvme','IItzAbihSXOdmPBk','鬼泣',69,78,91.32,15920607958,'[email protected]','3.223.213.121','广东省淑珍县锡山荆门街w座 641784'),(5,'WZInAzqhoQtqqFgYos','eQzBYkQFpVluX','高小王子',98,68,20.13,18284676675 ,'[email protected]','192.50.32.96','香港特别行政区荆门市长寿鹿街S座 510783'),(6,'mAefWlhA','DwKWiINWOnA','高小王子',78,31,60.98,14792577103,'[email protected]','100.17.197.23','山东省石家庄县金平刘路K座 784833'),(7,'XmfpkILwVND','abuaJTTjyF','逗比',58,100,26.53,18231254224,'[email protected]','203.185.175.88','广西壮族自治区玉梅县海港邵街A座 563100'),(8,'xrYqkgSOOCr','dGhMcoEkdJAHZw','歌神',32,52,2.54,15313355 703,'[email protected]','203.0.52.222','湖南省琳市上街郭街P座 697599'),(9,'jrx','UmFI','逗比',53,83,17.79,15381584126,'[email protected]','203.66.219.253','贵州省林县牧野兴安盟路B座 176888')] (Background on this error at: http://sqlalche.me/e/gkpj)

time used: 1.015 s

(venv366-64bit-mysql) D:\012_python3\datafaker-master>datafaker --version 0.5.1

From: GaryLi Date: 2019-10-31 14:46 To: gangly/datafaker CC: huanjoyous; Author Subject: Re: [gangly/datafaker] ValueError: empty range for randrange() (11,1, -10) (#7) 已经更新文档,请按照文档重新执行。 需要重新建表、写meta文件 datafaker rdb mysql+mysqldb://root:root@localhost:3306/test?charset=utf8 stu 10 --meta meta.txt — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

huanjoyous avatar Oct 31 '19 07:10 huanjoyous

是自增字段id重复报错

meta.txt文件内容为: id||int||自增id[:inc(id,1)]

gangly avatar Oct 31 '19 07:10 gangly

好像不是是自增字段id重复报错

我把数据类型的长度增大了 数据插入了10条数据,还是有错误,麻烦看一下,这个又是什么问题呢?

(venv366-64bit-mysql) D:\012_python3\datafaker-master>datafaker rdb mysql+mysqldb://api_test:[email protected]:3306/test?charset=utf8 stu 10 --meta C:\Users\Desktop\test\meta.txt Exception in thread Thread-2: Traceback (most recent call last): File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1249, in _execute_context cursor, statement, parameters, context File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\default.py", line 552, in do_execute cursor.execute(statement, parameters) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 209, in execute res = self._query(query) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 315, in _query db.query(q) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\connections.py", line 226, in query _mysql.connection.query(self, query) MySQLdb._exceptions.DataError: (1406, "Data too long for column 'school' at row 1")

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "c:\python366-64bit\Lib\threading.py", line 916, in _bootstrap_inner self.run() File "c:\python366-64bit\Lib\threading.py", line 864, in run self._target(*self._args, **self._kwargs) File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\dbs\basedb.py", line 96, in save self.save_data(lines) File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\dbs\rdbdb.py", line 32, in save_data self.session.execute(sql) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\orm\session.py", line 1269, in execute clause, params or {} File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 988, in execute return meth(self, multiparams, params) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\sql\elements.py", line 287, in _execute_on_connection return connection._execute_clauseelement(self, multiparams, params) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1107, in _execute_clauseelement distilled_params, File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1253, in _execute_context e, statement, parameters, cursor, context File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1473, in _handle_dbapi_exception util.raise_from_cause(sqlalchemy_exception, exc_info) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\util\compat.py", line 398, in raise_from_cause reraise(type(exception), exception, tb=exc_tb, cause=cause) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\util\compat.py", line 152, in reraise raise value.with_traceback(tb) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1249, in _execute_context cursor, statement, parameters, context File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\default.py", line 552, in do_execute cursor.execute(statement, parameters) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 209, in execute res = self._query(query) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 315, in _query db.query(q) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\connections.py", line 226, in query _mysql.connection.query(self, query) sqlalchemy.exc.DataError: (MySQLdb._exceptions.DataError) (1406, "Data too long for column 'school' at row 1") [SQL: insert into stu (id,name,school,nickname,age,class_num,score,phone,email,ip,address) values (1,'EcsqAIgWm','C:\Users\Desktop\test\names.txt','逗比',52,40,92.65,18240637175,'[email protected]',' 198.55.25.107','河南省海门县城东郭路C座 388904'),(2,'gkRiyDZijhD','C:\Users\Desktop\test\names.txt','歌神',26,83,43.46,13074714267,'[email protected]','169.239.131.249','湖南省明市高明陶路J座 582195' ),(3,'xDCvHbjHlDTugEShW','C:\Users\Desktop\test\names.txt','逗比',72,85,94.61,14512809067,'[email protected]','203.1.55.194','青海省桂珍县友好佛山路y座 770000'),(4,'mlpTJahNBwP','C:\Users
Desktop\test\names.txt','逗比',78,77,72.97,13435749548,'[email protected]','198.51.96.178','江苏省鑫县长寿余街X座 949976'),(5,'GQnrOYdfFVNAnPJvltCJ','C:\Users\Desktop\test\names.txt','鬼泣',8,98,37. 52,13061520972,'[email protected]','192.1.196.42','云南省红霞市南溪萧街l座 458674'),(6,'Ediffa','C:\Users\Desktop\test\names.txt','鬼泣',23,36,75.2,15382469099,'[email protected]','192.94.173.182' ,'安徽省淑华市东丽吕街n座 127944'),(7,'kwszWLqQJoMTjnlw','C:\Users\Desktop\test\names.txt','歌神',26,88,91.29,13309436490,'[email protected]','114.151.14.9','安徽省岩县东丽王路r座 210758'),(8,'AxfxTcQ SQyAYpPC','C:\Users\Desktop\test\names.txt','逗比',2,85,9.42,15536881271,'[email protected]','192.0.163.183','江苏省明县房山银川路x座 185845'),(9,'xMKjJJ','C:\Users\Desktop\test\names.txt',' 逗比',40,35,99.54,18522388381,'[email protected]','169.201.128.129','台湾省玉华市兴山重庆路W座 313792'),(10,'AenPJsHMG','C:\Users\Desktop\test\names.txt','逗比',21,48,36.48,14705395771,'yena@yahoo. com','198.51.202.13','广东省辛集市大兴王街B座 487560')] (Background on this error at: http://sqlalche.me/e/9h9h)

time used: 0.773 s

(venv366-64bit-mysql) D:\012_python3\datafaker-master>datafaker rdb mysql+mysqldb://api_test:[email protected]:3306/test?charset=utf8 stu 10 --meta C:\Users\Desktop\test\meta.txt insert 10 records time used: 0.662 s

From: GaryLi Date: 2019-10-31 15:26 To: gangly/datafaker CC: huanjoyous; Author Subject: Re: [gangly/datafaker] ValueError: empty range for randrange() (11,1, -10) (#7) 是自增字段id重复报错 meta.txt文件内容为: id||int||自增id[:inc(id,1)] — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

huanjoyous avatar Oct 31 '19 07:10 huanjoyous

1,学校的没有随机写进数据库?? 2,不能重复执行datafaker rdb mysql+mysqldb://api_test:[email protected]:3306/test?charset=utf8 stu 100 --meta C:\Users\huanjoyous\Desktop\test\meta.txt 否则会报错么?

From: [email protected] Date: 2019-10-31 15:43 To: gangly/datafaker Subject: Re: Re: [gangly/datafaker] ValueError: empty range for randrange() (11,1, -10) (#7) 好像不是是自增字段id重复报错

我把数据类型的长度增大了 数据插入了10条数据,还是有错误,麻烦看一下,这个又是什么问题呢?

(venv366-64bit-mysql) D:\012_python3\datafaker-master>datafaker rdb mysql+mysqldb://api_test:[email protected]:3306/test?charset=utf8 stu 10 --meta C:\Users\Desktop\test\meta.txt Exception in thread Thread-2: Traceback (most recent call last): File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1249, in _execute_context cursor, statement, parameters, context File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\default.py", line 552, in do_execute cursor.execute(statement, parameters) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 209, in execute res = self._query(query) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 315, in _query db.query(q) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\connections.py", line 226, in query _mysql.connection.query(self, query) MySQLdb._exceptions.DataError: (1406, "Data too long for column 'school' at row 1")

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "c:\python366-64bit\Lib\threading.py", line 916, in _bootstrap_inner self.run() File "c:\python366-64bit\Lib\threading.py", line 864, in run self._target(*self._args, **self._kwargs) File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\dbs\basedb.py", line 96, in save self.save_data(lines) File "D:\evn\venv366-64bit-mysql\lib\site-packages\datafaker\dbs\rdbdb.py", line 32, in save_data self.session.execute(sql) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\orm\session.py", line 1269, in execute clause, params or {} File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 988, in execute return meth(self, multiparams, params) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\sql\elements.py", line 287, in _execute_on_connection return connection._execute_clauseelement(self, multiparams, params) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1107, in _execute_clauseelement distilled_params, File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1253, in _execute_context e, statement, parameters, cursor, context File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1473, in _handle_dbapi_exception util.raise_from_cause(sqlalchemy_exception, exc_info) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\util\compat.py", line 398, in raise_from_cause reraise(type(exception), exception, tb=exc_tb, cause=cause) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\util\compat.py", line 152, in reraise raise value.with_traceback(tb) File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\base.py", line 1249, in _execute_context cursor, statement, parameters, context File "D:\evn\venv366-64bit-mysql\lib\site-packages\sqlalchemy\engine\default.py", line 552, in do_execute cursor.execute(statement, parameters) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 209, in execute res = self._query(query) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\cursors.py", line 315, in _query db.query(q) File "D:\evn\venv366-64bit-mysql\lib\site-packages\MySQLdb\connections.py", line 226, in query _mysql.connection.query(self, query) sqlalchemy.exc.DataError: (MySQLdb._exceptions.DataError) (1406, "Data too long for column 'school' at row 1") [SQL: insert into stu (id,name,school,nickname,age,class_num,score,phone,email,ip,address) values (1,'EcsqAIgWm','C:\Users\Desktop\test\names.txt','逗比',52,40,92.65,18240637175,'[email protected]',' 198.55.25.107','河南省海门县城东郭路C座 388904'),(2,'gkRiyDZijhD','C:\Users\Desktop\test\names.txt','歌神',26,83,43.46,13074714267,'[email protected]','169.239.131.249','湖南省明市高明陶路J座 582195' ),(3,'xDCvHbjHlDTugEShW','C:\Users\Desktop\test\names.txt','逗比',72,85,94.61,14512809067,'[email protected]','203.1.55.194','青海省桂珍县友好佛山路y座 770000'),(4,'mlpTJahNBwP','C:\Users
Desktop\test\names.txt','逗比',78,77,72.97,13435749548,'[email protected]','198.51.96.178','江苏省鑫县长寿余街X座 949976'),(5,'GQnrOYdfFVNAnPJvltCJ','C:\Users\Desktop\test\names.txt','鬼泣',8,98,37. 52,13061520972,'[email protected]','192.1.196.42','云南省红霞市南溪萧街l座 458674'),(6,'Ediffa','C:\Users\Desktop\test\names.txt','鬼泣',23,36,75.2,15382469099,'[email protected]','192.94.173.182' ,'安徽省淑华市东丽吕街n座 127944'),(7,'kwszWLqQJoMTjnlw','C:\Users\Desktop\test\names.txt','歌神',26,88,91.29,13309436490,'[email protected]','114.151.14.9','安徽省岩县东丽王路r座 210758'),(8,'AxfxTcQ SQyAYpPC','C:\Users\Desktop\test\names.txt','逗比',2,85,9.42,15536881271,'[email protected]','192.0.163.183','江苏省明县房山银川路x座 185845'),(9,'xMKjJJ','C:\Users\Desktop\test\names.txt',' 逗比',40,35,99.54,18522388381,'[email protected]','169.201.128.129','台湾省玉华市兴山重庆路W座 313792'),(10,'AenPJsHMG','C:\Users\Desktop\test\names.txt','逗比',21,48,36.48,14705395771,'yena@yahoo. com','198.51.202.13','广东省辛集市大兴王街B座 487560')] (Background on this error at: http://sqlalche.me/e/9h9h)

time used: 0.773 s

(venv366-64bit-mysql) D:\012_python3\datafaker-master>datafaker rdb mysql+mysqldb://api_test:[email protected]:3306/test?charset=utf8 stu 10 --meta C:\Users\Desktop\test\meta.txt insert 10 records time used: 0.662 s

From: GaryLi Date: 2019-10-31 15:26 To: gangly/datafaker CC: huanjoyous; Author Subject: Re: [gangly/datafaker] ValueError: empty range for randrange() (11,1, -10) (#7) 是自增字段id重复报错 meta.txt文件内容为: id||int||自增id[:inc(id,1)] — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

huanjoyous avatar Oct 31 '19 07:10 huanjoyous

可能是names.txt行数不够多,没能随机获取 id||int||自增id[:inc(id,1)]表示从1开始每次增长1,若要重复执行,需要每次修改开始值,不然数据库主键会报错。 比如 写入10条数据后,改为id||int||自增id[:inc(id,11)],再运行

建议多读下后面的数据构造规则文档

gangly avatar Oct 31 '19 08:10 gangly

元数据文件:学校字段像这样写 school||varchar(20)||学校名字[:enum(file://d:\tmp\data\names.txt)]

gangly avatar Oct 31 '19 08:10 gangly

元数据文件: code||int(10)||编号 这样子都会报错,都必须得加上规则吧: code||int(10)||编号[:int(1,999999)]

keejo125 avatar Dec 24 '19 07:12 keejo125

元数据文件: code||int(10)||编号 这样子都会报错,都必须得加上规则吧: code||int(10)||编号[:int(1,999999)]

试了下,改成 code||int(0,10)||编号 也可以

keejo125 avatar Dec 25 '19 04:12 keejo125