使用pikadb的db文件导入数据 加载不到数据

问题遇到的现象和发生背景

使用pikadb的db文件导入数据 加载不到数据

操作环境、软件版本等信息

源 docker环境的pikadb
pika -v
-----------Pika server----------
pika_version: 3.4.0
pika_git_sha:bd30511bf82038c2c6531b3d84872c9825fe836a
pika_build_compile_date: Dec 1 2020

现在的centos07 pika_version: 3.4.1
pika_git_sha:3e5249d40b89ed95539d4d7d559d3a11a52ad29e
pika_build_compile_date: Jun 3 2023

尝试过的解决方法

我将源docker的pikadb的数据库的存储文件db文件
复制到到新的pikadb的数据加载目录了 但是发现并不现实里面的数据

127.0.0.1:9221> dbsize
(integer) 0
127.0.0.1:9221> config get db-path
1) "db-path"
2) "/home/cfc/data/pika/db/"
127.0.0.1:9221> info keyspace
# Keyspace
# Time:1970-01-01 08:00:00
db0 Strings_keys=0, expires=0, invalid_keys=0
db0 Hashes_keys=0, expires=0, invalid_keys=0
db0 Lists_keys=0, expires=0, invalid_keys=0
db0 Zsets_keys=0, expires=0, invalid_keys=0
db0 Sets_keys=0, expires=0, invalid_keys=0

127.0.0.1:9221> exit
[root@cfc_pie pika]# du -h /home/cfc/data/pika/db/
11M     /home/cfc/data/pika/db/db0/hashes
16G     /home/cfc/data/pika/db/db0/lists
4.7M    /home/cfc/data/pika/db/db0/sets
4.4M    /home/cfc/data/pika/db/db0/strings
4.7M    /home/cfc/data/pika/db/db0/zsets
16K     /home/cfc/data/pika/db/db0/dbsync/rsync
16K     /home/cfc/data/pika/db/db0/dbsync
16G     /home/cfc/data/pika/db/db0
16G     /home/cfc/data/pika/db/

我想要达到的结果

#加载到/data/pika/db 这个里面的数据

你得系统是什么系统

引用chatgpt:
首先,确保你已经安装了pika库。如果没有安装,可以使用以下命令安装:

pip install pika

接下来,你可以使用以下Python代码将数据导入到/data/pika/db文件中:

import os
import json
from pika import BlockingConnection, ConnectionParameters, ExchangeType
from pika.adapters import Sqlite3Connection

# 连接到本地的SQLite数据库
connection_params = ConnectionParameters('localhost')
connection = BlockingConnection(ConnectionParameters('localhost'))
channel = connection.channel()

# 创建一个名为pika的表,包含id和data字段
channel.execute("CREATE TABLE IF NOT EXISTS pika (id INTEGER PRIMARY KEY, data TEXT)")

# 从源docker环境的pikadb导入数据到本地的SQLite数据库
src_db_path = "/path/to/source/pikadb"  # 源pikadb的路径
dst_db_path = "/data/pika/db"  # 目标数据库的路径
table_name = "pika"

with open(os.path.join(src_db_path, table_name + ".json"), "r") as f:
    data = json.load(f)

for item in data:
    id = item["id"]
    data = item["data"]
    channel.execute("INSERT INTO {} (id, data) VALUES (%s, %s)".format(table_name), (id, data))

# 将数据同步到本地的SQLite数据库
connection.close()

请确保将src_db_path变量设置为源pikadb的路径。运行此代码后,数据应该会被导入到/data/pika/db文件中。

回答部分参考、引用ChatGpt以便为您提供更准确的答案:

面对华为应用市场严格的审核标准和用户拒绝存储权限导致的注册和登录问题,以下是一些建议供参考:

  1. 沟通并了解审核要求:与华为应用市场的审核团队进行沟通,了解他们对于身份证上传和扫码等操作的具体要求和限制。这样可以更好地了解他们的审核标准,以便你对项目进行相应的调整。
  2. 针对华为市场定制版本:根据华为市场的要求,针对该市场提交一个专门定制的版本,该版本在注册和登录流程上进行了相应的调整。这样可以满足华为市场的审核要求,而不需要改变现有项目的需求。
  3. 使用替代方案:考虑使用其他方式代替身份证上传和扫码操作,例如使用其他合法的身份验证方式,或者提供其他方式的用户身份验证,以满足华为市场的审核要求。这样可以避免直接删除注册这一步骤,而且能够保持项目的原有需求。
  4. 针对华为市场的特殊版本:在华为市场中发布一个特殊版本,该版本在注册和登录流程上与其他平台有所不同。通过在代码中进行条件判断,仅在用户在华为市场中下载应用时才启用这些特殊的注册和登录流程。这样可以保持项目的原有需求,同时满足华为市场的审核要求。

在实施上述建议时,请务必在与华为应用市场沟通后进行操作,并确保你的应用在其他平台上线的版本和在华为市场上线的版本一致。此外,建议你在代码中进行适当的注释,解释为什么在华为市场版本中进行了特殊处理。

总之,与华为应用市场的审核团队进行积极的沟通,并根据他们的要求进行相应的调整,是解决这个问题的关键。同时,保持项目的原有需求,尽量避免大规模的改动。