关于文件搜索功能不能用,创建索引失败的问题


#1

在主页搜索文件搜索不到。按照官方文档的说明。

操作了:

./pro/pro.py search --clear
./pro/pro.py search --update

但在执行 ./pro/pro.py search --update 的时候有报错。

03/02/2019 04:49:44 [INFO] root:210 main: storage: using filesystem storage backend
03/02/2019 04:49:44 [INFO] root:212 main: index office pdf: False
03/02/2019 04:49:44 [INFO] seafes:163 start_index_local: Index process initialized.
03/02/2019 04:49:44 [INFO] seafes:46 run: starting worker0 worker threads for indexing
03/02/2019 04:49:44 [INFO] seafes:46 run: starting worker1 worker threads for indexing

03/02/2019 04:49:44 [ERROR] root:93 get_repo_id_commit_id: "Could not locate column in row for column 'repo_id'" 
03/02/2019 04:49:44 [ERROR] seafes:58 run: Error: "Could not locate column in row for column 'repo_id'" *

03/02/2019 04:49:46 [DEBUG] seafes:96 thread_task: Queue is empty, worker0 worker threads stop
03/02/2019 04:49:46 [INFO] seafes:124 thread_task: worker0 worker updated at 2019-03-02 04:49 time
03/02/2019 04:49:46 [INFO] seafes:129 thread_task: worker0 worker get 0 error
03/02/2019 04:49:46 [DEBUG] seafes:96 thread_task: Queue is empty, worker1 worker threads stop
03/02/2019 04:49:46 [INFO] seafes:124 thread_task: worker1 worker updated at 2019-03-02 04:49 time
03/02/2019 04:49:46 [INFO] seafes:129 thread_task: worker1 worker get 0 error
03/02/2019 04:49:46 [INFO] seafes:38 clear_worker: All worker threads has stopped.
03/02/2019 04:49:46 [INFO] seafes:166 start_index_local: 

我看了一下代码:./pro/python/seafes/repo_data/__init__.py
用这里面的SQL语句在mysql执行是没问题的。
同时我把MYSQL执行的结果拼凑成代码里返回值的样子是可以继续执行并成功创建了索引。
请问这个问题怎么解决呢?

补充下相关信息:企业版6.3.7


#2

有大神帮忙看看吗?
看上去是sqlalchemy的问题
我现在的处理是重写了 _get_repo_id_commit_id 方法,用MySQLdb去实现。
基本可以解决索引的问题,但不知道有没有其他的坑在


#3

这么改代码是不行滴,建议您最好到数据库seafile_db中执行以下语句,将结果贴出来看下:
SELECT repo_id, commit_id FROM Branch WHERE name = "master" AND repo_id NOT IN (SELECT repo_id from VirtualRepo) limit 1, 10;


#4

06:14:57am> SELECT repo_id, commit_id FROM Branch WHERE name = “master” AND repo_id NOT IN (SELECT repo_id from VirtualRepo) limit 1, 10;
±-------------------------------------±-----------------------------------------+
| repo_id | commit_id |
±-------------------------------------±-----------------------------------------+
| 613e087c-0b10-4a5d-b314-c2bd6ca5d32e | 7f6a3c5e38c9e3dadf51382c1b6121c547e36682 |
| 6b7b4064-54c4-46b9-aa9a-3b260d5ff029 | ad07aaaafce506dda99c39d27b57e1bf35df7def |
| d51c7748-bf4c-4e0b-bce9-8ca34098ed49 | d0f9604c27fe447b5ce917a39e99dfd63a1b713c |
| a9ac4d11-6d58-4660-8935-1cbd42de14c7 | d6e4925b34a1e01d5c1db91d667aad8a0d3cb7e5 |
| 28425062-b5d8-446c-b1ac-efd4141aed26 | 677cad2c7864cb493d6d06021686320469761f28 |
| f25a53e1-4e21-44a1-8c58-3a9ad1ad35ed | eab35fa09af2b1317461ff1408c33a7e156f94bd |
| 36049f3b-f373-41b1-b401-0370f9c9daf3 | 7d76dcb7e08315a733aba555ffe4ec0cee641721 |
| d4090f23-980b-4990-ab7b-1f61dc4e3039 | b3b030f99f133627ed6ee0a95259cb01346ecc86 |
| 3b9bbf69-cbc5-47bd-bec6-49a7cae10bd7 | 6d7c56180a447fef3c222b2c25d192e4629f52ec |
| 9fe18b4b-6000-417a-9c0e-0dd06c6a7de3 | a9584788d20b791420d23fa83c5be93c6585ebaa |
±-------------------------------------±-----------------------------------------+
10 rows in set (0.00 sec)


#5

我看到代码里 是去执行了这条SQL。
前面一开始有说到的,这条SQL放在mysql执行是没问题的。同时我用MySQLdb重写方法去执行返回也是正常,但代码里是用到 sqlalchemy 就报错了。不知道是BUG还是我的MySQL里的数据有问题了。


#6

那把你的部署环境也发一下吧,seafile的版本,操作系统的信息,如何部署的


#7

seafile 6.3.7
操作系统 centos 6.2 x64


#8

这个还是不建议在centos6的系统下部署seafile,官网发布仅支持centos 7 或者 Ubuntu16.04以上


#9

明白了,我去centos 7下试试
之前都是在centos 6下是升级了glibc到2.17后跑起来的。