0

我有 Kallithea 在我自己的带有 sqlite 数据库的服务器上运行。我想将所有这些数据移至 MySQL 数据库。如果未指定任何其他数据库,则默认 Kallithea 使用 sqlite。从 Kallithea 文档 pdf https://media.readthedocs.org/pdf/kallithea/latest/kallithea.pdf他们建议使用https://github.com/shazow/sqlalchemygrate将数据从数据库迁移到另一个。

我使用 Python pip 安装了 sqlalchemygrate,但是当我尝试迁移时,有些部分我根本不明白。帮助菜单没有明确指定如何使用迁移命令。至少我完全不明白。例如,当我尝试输入

grate migrate "sqlite:./kallithea.db" "mysql://kallithea@localhost/kallithea"

我收到错误消息

ImportError: No module named sqlite

在帮助菜单中,它说要使用

migrate METADATA ENGINE_FROM ENGINE_TO Migrate schema or data from one engine to another.

以及如何使用它的示例

grate migrate model.meta:metadata \ "mysql://foo:bar@localhost/baz" "sqlite:///:memory:" \

我真正不明白的是它需要的元数据是什么?以及如何为此指定 sqlite .db 文件。以及如何使用拥有该数据库所有权限的用户 kallithea 将数据迁移到 mysql 中的新 kallithea 数据库。

4

2 回答 2

0

不确定 Kallithea,但 RhodeCode 用户使用 TAPS ( https://github.com/ricardochimal/taps ) 项目将他们的数据库迁移到不同的格式取得了巨大的成功。

于 2015-09-11T10:27:00.540 回答
0

ImportError:没有名为 sqlite 的模块

您可能需要安装 sqlite 等pip install sqlite

关于它需要什么元数据,它指的是metadata在 SQLAlchemy 的上下文中:http: //docs.sqlalchemy.org/en/latest/core/metadata.html

于 2018-06-28T17:33:37.590 回答