-
Notifications
You must be signed in to change notification settings - Fork 36
Open
Description
I used lycheesync to import a large amount of photos into my server, however for some of them the import failed with an error:
1406 Data too long for row
When I took a closer look I found that focal of the exif information is to large for the mysql database. In my case focal is 16.799999237060547 mm, which is longer than 20 Byte!
mysql> describe lychee_photos;
+-------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+
| id | bigint(14) unsigned | NO | PRI | NULL | |
| title | varchar(100) | NO | | | |
| description | varchar(1000) | YES | | | |
| url | varchar(100) | NO | | NULL | |
| tags | varchar(1000) | NO | | | |
| public | tinyint(1) | NO | | NULL | |
| type | varchar(10) | NO | | NULL | |
| width | int(11) | NO | | NULL | |
| height | int(11) | NO | | NULL | |
| size | varchar(20) | NO | | NULL | |
| iso | varchar(15) | NO | | NULL | |
| aperture | varchar(20) | NO | | NULL | |
| make | varchar(50) | NO | | NULL | |
| model | varchar(50) | NO | | NULL | |
| shutter | varchar(30) | NO | | NULL | |
| focal | varchar(20) | NO | | NULL | |
| takestamp | int(11) | YES | | NULL | |
| star | tinyint(1) | NO | MUL | NULL | |
| thumbUrl | char(37) | NO | | NULL | |
| album | bigint(14) unsigned | NO | MUL | NULL | |
| checksum | char(40) | YES | | NULL | |
| medium | tinyint(1) | NO | | 0 | |
+-------------+---------------------+------+-----+---------+-------+
I changed the code as follows and everything is working for now:
diff --git a/lycheesync/lycheedao.py b/lycheesync/lycheedao.py
index 5e837de..7a744b5 100644
--- a/lycheesync/lycheedao.py
+++ b/lycheesync/lycheedao.py
@@ -487,6 +487,12 @@ class LycheeDAO:
except Exception as e:
stamp = datetime.datetime.now().strftime('%s')
+ if len(photo.exif.focal) > 20:
+ if photo.exif.focal[-2:] == "mm":
+ photo.exif.focal = photo.exif.focal[0:17] + photo.exif.focal[-3:0]
+ else:
+ photo.exif.focal = photo.exif.focal[0:20]
+
query = ("insert into lychee_photos " +
"(id, url, public, type, width, height, " +
"size, star, " +
Is it ok to perform the checks at this location or would you recommed something else?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels