sqilite_web安装使用
sqlite不支持server模式,想查看服务器上的sqlite数据库里面的数据,只能登录到服务器上,执行sqlite命令去进行sql查询,很不方便
于是决定使用sqilite_web来进行页面操作sqlite
安装:
pip install sqlite-web
启动:
sqlite_web /opt/yingzi-topsea-id-engine/sqlite.db -p 8888 -H 服务器ip
后台启动:
nohup sqlite_web sqlite.db -p 8888 -H 服务器ip &
解决spatialite报错:
nohup sqlite_web sqlite.db -e /usr/lib/aarch64-linux-gnu/mod_spatialite.so -p 8888 -H 服务器ip &
添加了spatialite空间相关的表后,启动会报错:
Traceback (most recent call last):File "/usr/local/lib/python3.8/dist-packages/peewee.py", line 3322, in execute_sqlcursor.execute(sql, params or ())
sqlite3.OperationalError: no such module: VirtualElementaryDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File "/usr/local/bin/sqlite_web", line 8, in <module>sys.exit(main())File "/usr/local/lib/python3.8/dist-packages/sqlite_web/sqlite_web.py", line 1395, in maininitialize_app(args[0], options.read_only, password, options.url_prefix,File "/usr/local/lib/python3.8/dist-packages/sqlite_web/sqlite_web.py", line 1348, in initialize_appdataset = SqliteDataSet(db, bare_fields=True, **dataset_kw)File "/usr/local/lib/python3.8/dist-packages/playhouse/dataset.py", line 49, in __init__self._models = self._introspector.generate_models(File "/usr/local/lib/python3.8/dist-packages/playhouse/reflection.py", line 679, in generate_modelsdatabase = self.introspect(table_names, literal_column_names,File "/usr/local/lib/python3.8/dist-packages/playhouse/reflection.py", line 582, in introspecttable_columns = self.metadata.get_columns(table, self.schema)File "/usr/local/lib/python3.8/dist-packages/playhouse/reflection.py", line 171, in get_columnsfor metadata in self.database.get_columns(table, schema))File "/usr/local/lib/python3.8/dist-packages/peewee.py", line 3895, in get_columnscursor = self.execute_sql('PRAGMA "%s".table_info("%s")' %File "/usr/local/lib/python3.8/dist-packages/peewee.py", line 3322, in execute_sqlcursor.execute(sql, params or ())File "/usr/local/lib/python3.8/dist-packages/peewee.py", line 3088, in __exit__reraise(new_type, new_type(exc_value, *exc_args), traceback)File "/usr/local/lib/python3.8/dist-packages/peewee.py", line 196, in reraiseraise value.with_traceback(tb)File "/usr/local/lib/python3.8/dist-packages/peewee.py", line 3322, in execute_sqlcursor.execute(sql, params or ())
peewee.OperationalError: no such module: VirtualElementary
主要原因是spatialite初始化时会自动生成ElementaryGeometries表,在执行PRAGMA "main".table_info("ElementaryGeometries")获取表结构时会报错
需要加载spatialite库才行
解决方案是启动命令中增加-e /usr/lib/aarch64-linux-gnu/mod_spatialite.so
如果不知道mod_spatialite.so位置,可用find / -name "mod_spatialite.so"命令进行查找